This commit was manufactured by cvs2svn to create tag 'v200911120027'.
diff --git a/features/org.eclipse.jst.common.fproj.enablement.jdt.feature/.project b/features/org.eclipse.jst.common.fproj.enablement.jdt.feature/.project
deleted file mode 100644
index 1eabbef..0000000
--- a/features/org.eclipse.jst.common.fproj.enablement.jdt.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jst.common.fproj.enablement.jdt.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/features/org.eclipse.jst.common.fproj.enablement.jdt.feature/build.properties b/features/org.eclipse.jst.common.fproj.enablement.jdt.feature/build.properties
deleted file mode 100644
index 364480b..0000000
--- a/features/org.eclipse.jst.common.fproj.enablement.jdt.feature/build.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-bin.includes = feature.xml,\
-               eclipse_update_120.jpg,\
-               epl-v10.html,\
-               license.html,\
-               feature.properties
-
diff --git a/features/org.eclipse.jst.common.fproj.enablement.jdt.feature/eclipse_update_120.jpg b/features/org.eclipse.jst.common.fproj.enablement.jdt.feature/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/features/org.eclipse.jst.common.fproj.enablement.jdt.feature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/features/org.eclipse.jst.common.fproj.enablement.jdt.feature/epl-v10.html b/features/org.eclipse.jst.common.fproj.enablement.jdt.feature/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/features/org.eclipse.jst.common.fproj.enablement.jdt.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/features/org.eclipse.jst.common.fproj.enablement.jdt.feature/feature.properties b/features/org.eclipse.jst.common.fproj.enablement.jdt.feature/feature.properties
deleted file mode 100644
index 7bfbaf2..0000000
--- a/features/org.eclipse.jst.common.fproj.enablement.jdt.feature/feature.properties
+++ /dev/null
@@ -1,128 +0,0 @@
-# "featureName" property - name of the feature
-featureName=Eclipse Faceted Project Framework JDT Enablement
-
-# "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=The Faceted Project Framework allows the plugin developer to think of projects \n\
-as composed of units of functionality, otherwise known as facets, that can be added and removed \n\
-by the user.
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2009 Oracle and others.\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
-################ 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/features/org.eclipse.jst.common.fproj.enablement.jdt.feature/feature.xml b/features/org.eclipse.jst.common.fproj.enablement.jdt.feature/feature.xml
deleted file mode 100644
index cab79e0..0000000
--- a/features/org.eclipse.jst.common.fproj.enablement.jdt.feature/feature.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.jst.common.fproj.enablement.jdt"
-      label="%featureName"
-      version="3.2.0.qualifier"
-      provider-name="%providerName"
-      plugin="org.eclipse.jst.common.project.facet.core">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="%licenseURL">
-      %license
-   </license>
-
-   <url>
-      <update label="%updateSiteName" url="http://download.eclipse.org/webtools/updates/"/>
-   </url>
-
-   <plugin
-         id="org.eclipse.jst.common.project.facet.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jst.common.project.facet.ui"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
diff --git a/features/org.eclipse.jst.common.fproj.enablement.jdt.feature/license.html b/features/org.eclipse.jst.common.fproj.enablement.jdt.feature/license.html
deleted file mode 100644
index 76abfb4..0000000
--- a/features/org.eclipse.jst.common.fproj.enablement.jdt.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/features/org.eclipse.jst.common.fproj.enablement.jdt.feature/sourceTemplateBundle/about.html b/features/org.eclipse.jst.common.fproj.enablement.jdt.feature/sourceTemplateBundle/about.html
deleted file mode 100644
index fe81d46..0000000
--- a/features/org.eclipse.jst.common.fproj.enablement.jdt.feature/sourceTemplateBundle/about.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<P>June, 2008</P>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content.</p>
-
-<h3>Source Code</h3>
-<p>This plug-in contains source code zip files (&quot;Source Zips&quot;) that correspond to binary content in other plug-ins. These Source Zips may be distributed under different license
-agreements and/or notices. Details about these license agreements and notices are contained in &quot;about.html&quot; files (&quot;Abouts&quot;) located in sub-directories in the
-src/ directory of this plug-in. Such Abouts govern your use of the Source Zips in that directory, not the EPL.</p>
-
-</body>
-</html>
diff --git a/features/org.eclipse.jst.common.fproj.enablement.jdt.feature/sourceTemplateBundle/build.properties b/features/org.eclipse.jst.common.fproj.enablement.jdt.feature/sourceTemplateBundle/build.properties
deleted file mode 100644
index 90b8764..0000000
--- a/features/org.eclipse.jst.common.fproj.enablement.jdt.feature/sourceTemplateBundle/build.properties
+++ /dev/null
@@ -1 +0,0 @@
-bin.includes = about.html
diff --git a/features/org.eclipse.jst.common.fproj.enablement.jdt.sdk.feature/.project b/features/org.eclipse.jst.common.fproj.enablement.jdt.sdk.feature/.project
deleted file mode 100644
index 14e1dee..0000000
--- a/features/org.eclipse.jst.common.fproj.enablement.jdt.sdk.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jst.common.fproj.enablement.jdt.sdk.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/features/org.eclipse.jst.common.fproj.enablement.jdt.sdk.feature/build.properties b/features/org.eclipse.jst.common.fproj.enablement.jdt.sdk.feature/build.properties
deleted file mode 100644
index 244c8ee..0000000
--- a/features/org.eclipse.jst.common.fproj.enablement.jdt.sdk.feature/build.properties
+++ /dev/null
@@ -1,8 +0,0 @@
-bin.includes = feature.xml,\
-               epl-v10.html,\
-               license.html,\
-               eclipse_update_120.jpg,\
-               feature.properties
-
-generate.plugin@org.eclipse.jst.common.project.facet.core.source=org.eclipse.jst.common.project.facet.core
-generate.plugin@org.eclipse.jst.common.project.facet.ui.source=org.eclipse.jst.common.project.facet.ui
diff --git a/features/org.eclipse.jst.common.fproj.enablement.jdt.sdk.feature/eclipse_update_120.jpg b/features/org.eclipse.jst.common.fproj.enablement.jdt.sdk.feature/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/features/org.eclipse.jst.common.fproj.enablement.jdt.sdk.feature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/features/org.eclipse.jst.common.fproj.enablement.jdt.sdk.feature/epl-v10.html b/features/org.eclipse.jst.common.fproj.enablement.jdt.sdk.feature/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/features/org.eclipse.jst.common.fproj.enablement.jdt.sdk.feature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
-WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
-WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
-MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/features/org.eclipse.jst.common.fproj.enablement.jdt.sdk.feature/feature.properties b/features/org.eclipse.jst.common.fproj.enablement.jdt.sdk.feature/feature.properties
deleted file mode 100644
index 0f1be26..0000000
--- a/features/org.eclipse.jst.common.fproj.enablement.jdt.sdk.feature/feature.properties
+++ /dev/null
@@ -1,128 +0,0 @@
-# "featureName" property - name of the feature
-featureName=Eclipse Faceted Project Framework JDT Enablement 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=The Faceted Project Framework allows the plugin developer to think of projects \n\
-as composed of units of functionality, otherwise known as facets, that can be added and removed \n\
-by the user.
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2009 Oracle and others.\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
-################ 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/features/org.eclipse.jst.common.fproj.enablement.jdt.sdk.feature/feature.xml b/features/org.eclipse.jst.common.fproj.enablement.jdt.sdk.feature/feature.xml
deleted file mode 100644
index 9c331d6..0000000
--- a/features/org.eclipse.jst.common.fproj.enablement.jdt.sdk.feature/feature.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.jst.common.fproj.enablement.jdt.sdk"
-      label="%featureName"
-      version="3.2.0.qualifier"
-      provider-name="%providerName"
-      plugin="org.eclipse.jst.common.fproj.enablement.jdt.sdk">
-
-   <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.jst.common.fproj.enablement.jdt"
-         version="0.0.0"/>
-
-   <plugin
-         id="org.eclipse.jst.common.project.facet.core.source"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jst.common.project.facet.ui.source"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jst.common.fproj.enablement.jdt.sdk"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
diff --git a/features/org.eclipse.jst.common.fproj.enablement.jdt.sdk.feature/license.html b/features/org.eclipse.jst.common.fproj.enablement.jdt.sdk.feature/license.html
deleted file mode 100644
index 5644598..0000000
--- a/features/org.eclipse.jst.common.fproj.enablement.jdt.sdk.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/features/org.eclipse.wst.common.fproj.feature/.project b/features/org.eclipse.wst.common.fproj.feature/.project
deleted file mode 100644
index a234f5f..0000000
--- a/features/org.eclipse.wst.common.fproj.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.common.fproj.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/features/org.eclipse.wst.common.fproj.feature/build.properties b/features/org.eclipse.wst.common.fproj.feature/build.properties
deleted file mode 100644
index 364480b..0000000
--- a/features/org.eclipse.wst.common.fproj.feature/build.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-bin.includes = feature.xml,\
-               eclipse_update_120.jpg,\
-               epl-v10.html,\
-               license.html,\
-               feature.properties
-
diff --git a/features/org.eclipse.wst.common.fproj.feature/eclipse_update_120.jpg b/features/org.eclipse.wst.common.fproj.feature/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/features/org.eclipse.wst.common.fproj.feature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/features/org.eclipse.wst.common.fproj.feature/epl-v10.html b/features/org.eclipse.wst.common.fproj.feature/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/features/org.eclipse.wst.common.fproj.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/features/org.eclipse.wst.common.fproj.feature/feature.properties b/features/org.eclipse.wst.common.fproj.feature/feature.properties
deleted file mode 100644
index 39570ae..0000000
--- a/features/org.eclipse.wst.common.fproj.feature/feature.properties
+++ /dev/null
@@ -1,128 +0,0 @@
-# "featureName" property - name of the feature
-featureName=Eclipse Faceted Project Framework
-
-# "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=The Faceted Project Framework allows the plugin developer to think of projects \n\
-as composed of units of functionality, otherwise known as facets, that can be added and removed \n\
-by the user.
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2009 Oracle and others.\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
-################ 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/features/org.eclipse.wst.common.fproj.feature/feature.xml b/features/org.eclipse.wst.common.fproj.feature/feature.xml
deleted file mode 100644
index 153d8e8..0000000
--- a/features/org.eclipse.wst.common.fproj.feature/feature.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.wst.common.fproj"
-      label="%featureName"
-      version="3.2.0.qualifier"
-      provider-name="%providerName"
-      plugin="org.eclipse.wst.common.project.facet.core">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="%licenseURL">
-      %license
-   </license>
-
-   <url>
-      <update label="%updateSiteName" url="http://download.eclipse.org/webtools/updates/"/>
-   </url>
-
-   <plugin
-         id="org.eclipse.wst.common.project.facet.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.wst.common.project.facet.ui"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
diff --git a/features/org.eclipse.wst.common.fproj.feature/license.html b/features/org.eclipse.wst.common.fproj.feature/license.html
deleted file mode 100644
index 76abfb4..0000000
--- a/features/org.eclipse.wst.common.fproj.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/features/org.eclipse.wst.common.fproj.feature/sourceTemplateBundle/about.html b/features/org.eclipse.wst.common.fproj.feature/sourceTemplateBundle/about.html
deleted file mode 100644
index fe81d46..0000000
--- a/features/org.eclipse.wst.common.fproj.feature/sourceTemplateBundle/about.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<P>June, 2008</P>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content.</p>
-
-<h3>Source Code</h3>
-<p>This plug-in contains source code zip files (&quot;Source Zips&quot;) that correspond to binary content in other plug-ins. These Source Zips may be distributed under different license
-agreements and/or notices. Details about these license agreements and notices are contained in &quot;about.html&quot; files (&quot;Abouts&quot;) located in sub-directories in the
-src/ directory of this plug-in. Such Abouts govern your use of the Source Zips in that directory, not the EPL.</p>
-
-</body>
-</html>
diff --git a/features/org.eclipse.wst.common.fproj.feature/sourceTemplateBundle/build.properties b/features/org.eclipse.wst.common.fproj.feature/sourceTemplateBundle/build.properties
deleted file mode 100644
index 2c2c169..0000000
--- a/features/org.eclipse.wst.common.fproj.feature/sourceTemplateBundle/build.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-bin.includes = about.html
-src.includes = about.html
\ No newline at end of file
diff --git a/features/org.eclipse.wst.common.fproj.sdk.feature/.project b/features/org.eclipse.wst.common.fproj.sdk.feature/.project
deleted file mode 100644
index 4a54077..0000000
--- a/features/org.eclipse.wst.common.fproj.sdk.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.common.fproj.sdk.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/features/org.eclipse.wst.common.fproj.sdk.feature/build.properties b/features/org.eclipse.wst.common.fproj.sdk.feature/build.properties
deleted file mode 100644
index f21d70c..0000000
--- a/features/org.eclipse.wst.common.fproj.sdk.feature/build.properties
+++ /dev/null
@@ -1,8 +0,0 @@
-bin.includes = feature.xml,\
-               epl-v10.html,\
-               license.html,\
-               eclipse_update_120.jpg,\
-               feature.properties
-
-generate.plugin@org.eclipse.wst.common.project.facet.core.source=org.eclipse.wst.common.project.facet.core
-generate.plugin@org.eclipse.wst.common.project.facet.ui.source=org.eclipse.wst.common.project.facet.ui
diff --git a/features/org.eclipse.wst.common.fproj.sdk.feature/eclipse_update_120.jpg b/features/org.eclipse.wst.common.fproj.sdk.feature/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/features/org.eclipse.wst.common.fproj.sdk.feature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/features/org.eclipse.wst.common.fproj.sdk.feature/epl-v10.html b/features/org.eclipse.wst.common.fproj.sdk.feature/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/features/org.eclipse.wst.common.fproj.sdk.feature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
-WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
-WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
-MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/features/org.eclipse.wst.common.fproj.sdk.feature/feature.properties b/features/org.eclipse.wst.common.fproj.sdk.feature/feature.properties
deleted file mode 100644
index 88db5ea..0000000
--- a/features/org.eclipse.wst.common.fproj.sdk.feature/feature.properties
+++ /dev/null
@@ -1,128 +0,0 @@
-# "featureName" property - name of the feature
-featureName=Eclipse Faceted Project Framework 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=The Faceted Project Framework allows the plugin developer to think of projects \n\
-as composed of units of functionality, otherwise known as facets, that can be added and removed \n\
-by the user.
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2009 Oracle and others.\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
-################ 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/features/org.eclipse.wst.common.fproj.sdk.feature/feature.xml b/features/org.eclipse.wst.common.fproj.sdk.feature/feature.xml
deleted file mode 100644
index e71246c..0000000
--- a/features/org.eclipse.wst.common.fproj.sdk.feature/feature.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.wst.common.fproj.sdk"
-      label="%featureName"
-      version="3.2.0.qualifier"
-      provider-name="%providerName"
-      plugin="org.eclipse.wst.common.fproj.sdk">
-
-   <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.wst.common.fproj"
-         version="0.0.0"/>
-
-   <plugin
-         id="org.eclipse.wst.common.project.facet.core.source"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.wst.common.project.facet.ui.source"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.wst.common.project.facet.doc.api"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.wst.common.fproj.sdk"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
diff --git a/features/org.eclipse.wst.common.fproj.sdk.feature/license.html b/features/org.eclipse.wst.common.fproj.sdk.feature/license.html
deleted file mode 100644
index 5644598..0000000
--- a/features/org.eclipse.wst.common.fproj.sdk.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/plugins/org.eclipse.jst.common.fproj.enablement.jdt.sdk/.classpath b/plugins/org.eclipse.jst.common.fproj.enablement.jdt.sdk/.classpath
deleted file mode 100644
index 304e861..0000000
--- a/plugins/org.eclipse.jst.common.fproj.enablement.jdt.sdk/.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/plugins/org.eclipse.jst.common.fproj.enablement.jdt.sdk/.project b/plugins/org.eclipse.jst.common.fproj.enablement.jdt.sdk/.project
deleted file mode 100644
index a38058c..0000000
--- a/plugins/org.eclipse.jst.common.fproj.enablement.jdt.sdk/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jst.common.fproj.enablement.jdt.sdk</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/plugins/org.eclipse.jst.common.fproj.enablement.jdt.sdk/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.jst.common.fproj.enablement.jdt.sdk/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index bcc26d6..0000000
--- a/plugins/org.eclipse.jst.common.fproj.enablement.jdt.sdk/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,57 +0,0 @@
-#Wed Jan 31 15:32:12 PST 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-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.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=error
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=error
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=error
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/plugins/org.eclipse.jst.common.fproj.enablement.jdt.sdk/META-INF/MANIFEST.MF b/plugins/org.eclipse.jst.common.fproj.enablement.jdt.sdk/META-INF/MANIFEST.MF
deleted file mode 100644
index 61d0970..0000000
--- a/plugins/org.eclipse.jst.common.fproj.enablement.jdt.sdk/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,10 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Vendor: %providerName
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.jst.common.fproj.enablement.jdt.sdk; singleton:=true
-Bundle-Version: 1.4.100.qualifier
-Bundle-ClassPath: .
-Bundle-Localization: plugin
-Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/plugins/org.eclipse.jst.common.fproj.enablement.jdt.sdk/about.html b/plugins/org.eclipse.jst.common.fproj.enablement.jdt.sdk/about.html
deleted file mode 100644
index 2199df3..0000000
--- a/plugins/org.eclipse.jst.common.fproj.enablement.jdt.sdk/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, 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/plugins/org.eclipse.jst.common.fproj.enablement.jdt.sdk/about.ini b/plugins/org.eclipse.jst.common.fproj.enablement.jdt.sdk/about.ini
deleted file mode 100644
index 8949d8a..0000000
--- a/plugins/org.eclipse.jst.common.fproj.enablement.jdt.sdk/about.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-aboutText=%blurb
-featureImage=images/wtp-32.png
diff --git a/plugins/org.eclipse.jst.common.fproj.enablement.jdt.sdk/about.properties b/plugins/org.eclipse.jst.common.fproj.enablement.jdt.sdk/about.properties
deleted file mode 100644
index bcc0b6a..0000000
--- a/plugins/org.eclipse.jst.common.fproj.enablement.jdt.sdk/about.properties
+++ /dev/null
@@ -1,9 +0,0 @@
-blurb=Eclipse Faceted Project Framework JDT Enablement SDK\n\
-\n\
-Version: {featureVersion}\n\
-\n\
-The Faceted Project Framework allows the plugin developer to think of projects \n\
-as composed of units of functionality, otherwise known as facets, that can be \n\
-added and removed by the user.\n\
-\n\
-Copyright (c) 2009 Eclipse contributors and others. All rights reserved.
diff --git a/plugins/org.eclipse.jst.common.fproj.enablement.jdt.sdk/build.properties b/plugins/org.eclipse.jst.common.fproj.enablement.jdt.sdk/build.properties
deleted file mode 100644
index 5237c90..0000000
--- a/plugins/org.eclipse.jst.common.fproj.enablement.jdt.sdk/build.properties
+++ /dev/null
@@ -1,9 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = .,\
-               META-INF/,\
-               plugin.properties,\
-               about.html,\
-               images/,\
-               about.ini,\
-               about.properties
diff --git a/plugins/org.eclipse.jst.common.fproj.enablement.jdt.sdk/images/wtp-32.png b/plugins/org.eclipse.jst.common.fproj.enablement.jdt.sdk/images/wtp-32.png
deleted file mode 100644
index 6f09c2a..0000000
--- a/plugins/org.eclipse.jst.common.fproj.enablement.jdt.sdk/images/wtp-32.png
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.jst.common.fproj.enablement.jdt.sdk/plugin.properties b/plugins/org.eclipse.jst.common.fproj.enablement.jdt.sdk/plugin.properties
deleted file mode 100644
index 632a4c2..0000000
--- a/plugins/org.eclipse.jst.common.fproj.enablement.jdt.sdk/plugin.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-pluginName = Eclipse Faceted Project Framework JDT Enablement SDK
-providerName = Eclipse Web Tools Platform
diff --git a/plugins/org.eclipse.jst.common.fproj.enablement.jdt.sdk/src/.do-not-delete b/plugins/org.eclipse.jst.common.fproj.enablement.jdt.sdk/src/.do-not-delete
deleted file mode 100644
index e69de29..0000000
--- a/plugins/org.eclipse.jst.common.fproj.enablement.jdt.sdk/src/.do-not-delete
+++ /dev/null
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/.classpath b/plugins/org.eclipse.jst.common.project.facet.core/.classpath
deleted file mode 100644
index 304e861..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/.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/plugins/org.eclipse.jst.common.project.facet.core/.cvsignore b/plugins/org.eclipse.jst.common.project.facet.core/.cvsignore
deleted file mode 100644
index 0f57cf1..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/.cvsignore
+++ /dev/null
@@ -1,6 +0,0 @@
-bin
-@dot
-build.xml
-temp.folder
-src.zip
-javaCompiler...args
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/.project b/plugins/org.eclipse.jst.common.project.facet.core/.project
deleted file mode 100644
index 29c97ae..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jst.common.project.facet.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>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/.settings/.api_filters b/plugins/org.eclipse.jst.common.project.facet.core/.settings/.api_filters
deleted file mode 100644
index e266422..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/.settings/.api_filters
+++ /dev/null
@@ -1,99 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<component id="org.eclipse.jst.common.project.facet.core" version="2">
-    <resource path="src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetValidator.java" type="org.eclipse.jst.common.project.facet.core.internal.JavaFacetValidator">
-        <filter id="305365105">
-            <message_arguments>
-                <message_argument value="org.eclipse.jst.common.project.facet.core.internal.JavaFacetValidator"/>
-                <message_argument value="org.eclipse.jst.common.project.facet.core_1.4.0"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/jst/common/project/facet/core/internal/FacetCorePlugin.java" type="org.eclipse.jst.common.project.facet.core.internal.FacetCorePlugin">
-        <filter id="305365105">
-            <message_arguments>
-                <message_argument value="org.eclipse.jst.common.project.facet.core.internal.FacetCorePlugin"/>
-                <message_argument value="org.eclipse.jst.common.project.facet.core_1.4.0"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/jst/common/project/facet/core/internal/FacetedProjectFrameworkJavaPlugin.java" type="org.eclipse.jst.common.project.facet.core.internal.FacetedProjectFrameworkJavaPlugin">
-        <filter id="305365105">
-            <message_arguments>
-                <message_argument value="org.eclipse.jst.common.project.facet.core.internal.FacetedProjectFrameworkJavaPlugin"/>
-                <message_argument value="org.eclipse.jst.common.project.facet.core_1.4.0"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetInstallDelegate.java" type="org.eclipse.jst.common.project.facet.core.internal.JavaFacetInstallDelegate">
-        <filter id="305365105">
-            <message_arguments>
-                <message_argument value="org.eclipse.jst.common.project.facet.core.internal.JavaFacetInstallDelegate"/>
-                <message_argument value="org.eclipse.jst.common.project.facet.core_1.4.0"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetRuntimeChangedListener.java" type="org.eclipse.jst.common.project.facet.core.internal.JavaFacetRuntimeChangedListener">
-        <filter id="305365105">
-            <message_arguments>
-                <message_argument value="org.eclipse.jst.common.project.facet.core.internal.JavaFacetRuntimeChangedListener"/>
-                <message_argument value="org.eclipse.jst.common.project.facet.core_1.4.0"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetVersionChangeDelegate.java" type="org.eclipse.jst.common.project.facet.core.internal.JavaFacetVersionChangeDelegate">
-        <filter id="305365105">
-            <message_arguments>
-                <message_argument value="org.eclipse.jst.common.project.facet.core.internal.JavaFacetVersionChangeDelegate"/>
-                <message_argument value="org.eclipse.jst.common.project.facet.core_1.4.0"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/jst/common/project/facet/core/internal/JavaRuntimeBridge.java" type="org.eclipse.jst.common.project.facet.core.internal.JavaRuntimeBridge">
-        <filter id="305365105">
-            <message_arguments>
-                <message_argument value="org.eclipse.jst.common.project.facet.core.internal.JavaRuntimeBridge"/>
-                <message_argument value="org.eclipse.jst.common.project.facet.core_1.4.0"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/jst/common/project/facet/core/internal/StandardJreClasspathProvider.java" type="org.eclipse.jst.common.project.facet.core.internal.StandardJreClasspathProvider">
-        <filter id="305365105">
-            <message_arguments>
-                <message_argument value="org.eclipse.jst.common.project.facet.core.internal.StandardJreClasspathProvider"/>
-                <message_argument value="org.eclipse.jst.common.project.facet.core_1.4.0"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetUtil.java" type="org.eclipse.jst.common.project.facet.core.internal.JavaFacetUtil">
-        <filter id="305365105">
-            <message_arguments>
-                <message_argument value="org.eclipse.jst.common.project.facet.core.internal.JavaFacetUtil"/>
-                <message_argument value="org.eclipse.jst.common.project.facet.core_1.4.0"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/jst/common/project/facet/core/internal/RuntimeClasspathProvider.java" type="org.eclipse.jst.common.project.facet.core.internal.RuntimeClasspathProvider">
-        <filter id="305365105">
-            <message_arguments>
-                <message_argument value="org.eclipse.jst.common.project.facet.core.internal.RuntimeClasspathProvider"/>
-                <message_argument value="org.eclipse.jst.common.project.facet.core_1.4.0"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetInstallConfigFactory.java" type="org.eclipse.jst.common.project.facet.core.internal.JavaFacetInstallConfigFactory">
-        <filter id="305365105">
-            <message_arguments>
-                <message_argument value="org.eclipse.jst.common.project.facet.core.internal.JavaFacetInstallConfigFactory"/>
-                <message_argument value="org.eclipse.jst.common.project.facet.core_1.4.0"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetDefaultVersionProvider.java" type="org.eclipse.jst.common.project.facet.core.internal.JavaFacetDefaultVersionProvider">
-        <filter id="305365105">
-            <message_arguments>
-                <message_argument value="org.eclipse.jst.common.project.facet.core.internal.JavaFacetDefaultVersionProvider"/>
-                <message_argument value="org.eclipse.jst.common.project.facet.core_1.4.0"/>
-            </message_arguments>
-        </filter>
-    </resource>
-</component>
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.jst.common.project.facet.core/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index bd20e56..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun Apr 16 17:56:05 EDT 2006
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.jst.common.project.facet.core/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index bcc26d6..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,57 +0,0 @@
-#Wed Jan 31 15:32:12 PST 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-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.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=error
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=error
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=error
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.jst.common.project.facet.core/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 4a66d5a..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,13 +0,0 @@
-#Sun Apr 16 17:55:02 EDT 2006
-compilers.p.build=0
-compilers.p.deprecated=0
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=0
-compilers.p.unknown-element=0
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/META-INF/MANIFEST.MF b/plugins/org.eclipse.jst.common.project.facet.core/META-INF/MANIFEST.MF
deleted file mode 100644
index 0bf4593..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,25 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Vendor: %providerName
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.jst.common.project.facet.core; singleton:=true
-Bundle-Version: 1.4.100.qualifier
-Bundle-ClassPath: .
-Bundle-Localization: plugin
-Export-Package: org.eclipse.jst.common.project.facet.core,
- org.eclipse.jst.common.project.facet.core.internal;x-internal:=true,
- org.eclipse.jst.common.project.facet.core.libprov,
- org.eclipse.jst.common.project.facet.core.libprov.internal;x-friends:="org.eclipse.jst.common.project.facet.ui",
- org.eclipse.jst.common.project.facet.core.libprov.osgi,
- org.eclipse.jst.common.project.facet.core.libprov.user,
- org.eclipse.jst.common.project.facet.core.libprov.user.internal;x-friends:="org.eclipse.jst.common.project.facet.ui"
-Require-Bundle: org.eclipse.core.resources;bundle-version="[3.2.0,4.0)",
- org.eclipse.core.runtime;bundle-version="[3.2.0,4.0)",
- org.eclipse.jdt.core;bundle-version="[3.2.0,4.0)",
- org.eclipse.wst.common.project.facet.core;bundle-version="[1.3.0,2.0.0)",
- org.eclipse.jdt.launching;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.core.expressions;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.core.net;bundle-version="[1.2.0,2.0.0)"
-Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Bundle-Activator: org.eclipse.jst.common.project.facet.core.internal.FacetCorePlugin
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/about.html b/plugins/org.eclipse.jst.common.project.facet.core/about.html
deleted file mode 100644
index 2199df3..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.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>June, 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/plugins/org.eclipse.jst.common.project.facet.core/about.ini b/plugins/org.eclipse.jst.common.project.facet.core/about.ini
deleted file mode 100644
index 8949d8a..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/about.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-aboutText=%blurb
-featureImage=images/wtp-32.png
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/about.properties b/plugins/org.eclipse.jst.common.project.facet.core/about.properties
deleted file mode 100644
index 5896760..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/about.properties
+++ /dev/null
@@ -1,9 +0,0 @@
-blurb=Eclipse Faceted Project Framework JDT Enablement\n\
-\n\
-Version: {featureVersion}\n\
-\n\
-The Faceted Project Framework allows the plugin developer to think of projects \n\
-as composed of units of functionality, otherwise known as facets, that can be \n\
-added and removed by the user.\n\
-\n\
-Copyright (c) 2009 Eclipse contributors and others. All rights reserved.
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/build.properties b/plugins/org.eclipse.jst.common.project.facet.core/build.properties
deleted file mode 100644
index 18151cb..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/build.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = .,\
-               plugin.xml,\
-               META-INF/,\
-               plugin.properties,\
-               about.html,\
-               about.ini,\
-               about.properties,\
-               images/,\
-               schemas/
-src.includes = about.html
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/images/wtp-32.png b/plugins/org.eclipse.jst.common.project.facet.core/images/wtp-32.png
deleted file mode 100644
index 6f09c2a..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/images/wtp-32.png
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/plugin.properties b/plugins/org.eclipse.jst.common.project.facet.core/plugin.properties
deleted file mode 100644
index dcdfece..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/plugin.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-pluginName = Eclipse Faceted Project Framework JDT Enablement
-providerName = Eclipse Web Tools Platform
-jstJavaFacetLabel = Java
-jstJavaFacetDescription = Adds support for writing applications using Java programming language.
-javaVersionMismatchMarkerName = Faceted Project Problem (Java Version Mismatch)
-libraryProvidersExtensionPointName = Library Providers Extension Point
-legacyLibraryProviderDetectorsExtensionPointName = Legacy Library Provider Detectors Extension Point
-downloadableLibrariesExtensionPointName = Downloadable Libraries Extension Point
-userLibraryProviderLabel = User Library
-runtimeLibraryProviderLabel = Library Provided by Target Runtime
-runtimeLibraryProviderMessage = The targeted runtime is able to provide the library required by this facet. Selecting this option will configure the project to use that library.
-unknownLibraryProviderLabel = Unknown Library Configuration
-unknownLibraryProviderMessage = Could not determine the library that this project facet is configured to use. This could be due to plugins that are missing or could not be activated. Changing facet library in this state can leave metadata and other files in the project that will need to be cleaned up manually.
-legacyLibraryProviderLabel = Legacy Library Configuration
-legacyLibraryProviderMessage = This project is currently configured to use a legacy method for configuring libraries. Switch to one of the other available library types when it is no longer necessary to open this project in previous versions of Eclipse.
-noOpLibraryProviderLabel = Disable Library Configuration
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/plugin.xml b/plugins/org.eclipse.jst.common.project.facet.core/plugin.xml
deleted file mode 100644
index 957f669..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/plugin.xml
+++ /dev/null
@@ -1,281 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-
-<plugin>
-
-  <extension point="org.eclipse.core.runtime.adapters">
-    <factory 
-      class="org.eclipse.jst.common.project.facet.core.internal.RuntimeClasspathProvider$Factory" 
-      adaptableType="org.eclipse.wst.common.project.facet.core.runtime.IRuntime">
-      <adapter type="org.eclipse.jst.common.project.facet.core.IClasspathProvider"/>
-    </factory>
-  </extension>
-
-  <extension point="org.eclipse.wst.common.project.facet.core.runtimeBridges">
-    <bridge
-      id="org.eclipse.jst.common.project.facet.core.JavaRuntimeBridge"
-      class="org.eclipse.jst.common.project.facet.core.internal.JavaRuntimeBridge"/>
-  </extension>
-  
-  <extension point="org.eclipse.wst.common.project.facet.core.runtimes">
-  
-    <runtime-component-type id="standard.jre"/>
-    <runtime-component-version type="standard.jre" version="1.3"/>
-    <runtime-component-version type="standard.jre" version="1.4"/>
-    <runtime-component-version type="standard.jre" version="5.0"/>
-    <runtime-component-version type="standard.jre" version="6.0"/>
-
-    <supported>
-      <facet id="jst.java" version="1.3"/>
-      <runtime-component id="standard.jre" version="[1.3"/>
-    </supported>
-
-    <supported>
-      <facet id="jst.java" version="1.4"/>
-      <runtime-component id="standard.jre" version="[1.4"/>
-    </supported>
-
-    <supported>
-      <facet id="jst.java" version="5.0"/>
-      <runtime-component id="standard.jre" version="[5.0"/>
-    </supported>
-
-    <supported>
-      <facet id="jst.java" version="6.0"/>
-      <runtime-component id="standard.jre" version="[6.0"/>
-    </supported>
-    
-    <adapter>
-      <runtime-component id="standard.jre"/>
-      <factory class="org.eclipse.jst.common.project.facet.core.internal.StandardJreClasspathProvider$Factory"/>
-      <type class="org.eclipse.jst.common.project.facet.core.IClasspathProvider"/>
-    </adapter>
-
-  </extension>
-
-  <extension point="org.eclipse.wst.common.project.facet.core.facets">
-  
-    <project-facet id="jst.java">
-      <label>%jstJavaFacetLabel</label>
-      <description>%jstJavaFacetDescription</description>
-      <default-version provider="org.eclipse.jst.common.project.facet.core.internal.JavaFacetDefaultVersionProvider"/>
-    </project-facet>
-
-    <project-facet-version facet="jst.java" version="1.3">
-      <constraint>
-        <conflicts facet="wst.web"/>
-      </constraint>
-    </project-facet-version>
-
-    <project-facet-version facet="jst.java" version="1.4">
-      <constraint>
-        <conflicts facet="wst.web"/>
-      </constraint>
-    </project-facet-version>
-
-    <project-facet-version facet="jst.java" version="5.0">
-      <constraint>
-        <conflicts facet="wst.web"/>
-      </constraint>
-    </project-facet-version>
-
-    <project-facet-version facet="jst.java" version="6.0">
-      <constraint>
-        <conflicts facet="wst.web"/>
-      </constraint>
-    </project-facet-version>
-
-    <action facet="jst.java" type="install" id="jst.java.install">
-      <delegate class="org.eclipse.jst.common.project.facet.core.internal.JavaFacetInstallDelegate"/>
-      <config-factory class="org.eclipse.jst.common.project.facet.core.internal.JavaFacetInstallConfigFactory"/>
-    </action>
-
-    <action facet="jst.java" type="uninstall">
-      <delegate class="org.eclipse.jst.common.project.facet.core.internal.JavaFacetUninstallDelegate"/>
-      <config-factory class="org.eclipse.jst.common.project.facet.core.internal.JavaFacetUninstallConfigFactory"/>
-    </action>
-
-    <action facet="jst.java" type="version-change">
-      <delegate class="org.eclipse.jst.common.project.facet.core.internal.JavaFacetVersionChangeDelegate"/>
-      <config-factory class="org.eclipse.jst.common.project.facet.core.internal.JavaFacetVersionChangeConfigFactory"/>
-    </action>
-
-  </extension>
-  
-  <extension point="org.eclipse.wst.common.project.facet.core.listeners">
-     <listener
-       class="org.eclipse.jst.common.project.facet.core.internal.JavaFacetRuntimeChangedListener"
-       eventTypes="PRIMARY_RUNTIME_CHANGED"/>
-  </extension>
-  
-  <extension point="org.eclipse.wst.common.project.facet.core.validators">
-    <validator class="org.eclipse.jst.common.project.facet.core.internal.JavaFacetValidator">
-      <facet id="jst.java"/>
-    </validator>
-  </extension>    
-
-  <extension 
-    point="org.eclipse.core.resources.markers"
-    id="javaVersionMismatch"
-    name="%javaVersionMismatchMarkerName">
-    <super type="org.eclipse.wst.common.project.facet.core.validation.marker"/>
-    <attribute name="facetVersion"/>
-    <attribute name="compilerLevel"/>
-    <persistent value="true"/>
-  </extension>
-
-  <!--
-    ******************************
-    * Library Provider Framework *
-    ******************************
-  -->
-
-  <extension-point 
-   	id="libraryProviders" 
-   	name="%libraryProvidersExtensionPointName" 
-   	schema="schemas/libraryProviders.exsd"/>
-
-  <extension-point 
-    id="legacyLibraryProviderDetectors" 
-    name="%legacyLibraryProviderDetectorsExtensionPointName" 
-    schema="schemas/legacyLibraryProviderDetectors.exsd"/>
-   	
-  <extension-point 
-    id="downloadableLibraries" 
-    name="%downloadableLibrariesExtensionPointName" 
-    schema="schemas/downloadableLibraries.exsd"/>
-   	
-  <extension point="org.eclipse.jst.common.project.facet.core.libraryProviders">
-    <provider id="user-library-provider" abstract="true">
-      <label>%userLibraryProviderLabel</label>
-      <priority>500</priority>
-      <action type="INSTALL">
-        <config class="org.eclipse.jst.common.project.facet.core.libprov.user.UserLibraryProviderInstallOperationConfig"/>
-        <operation class="org.eclipse.jst.common.project.facet.core.libprov.user.UserLibraryProviderInstallOperation"/>
-      </action>
-      <action type="UNINSTALL">
-        <operation class="org.eclipse.jst.common.project.facet.core.libprov.user.UserLibraryProviderUninstallOperation"/>
-      </action>
-    </provider>
-  </extension>
-  
-  <extension point="org.eclipse.jst.common.project.facet.core.libraryProviders">
-    <provider id="runtime-library-provider">
-      <label>%runtimeLibraryProviderLabel</label>
-      <priority>600</priority>
-      <param name="message" value="%runtimeLibraryProviderMessage"/>
-      <enablement>
-        <with variable="context">
-          <test property="org.eclipse.jst.common.project.facet.core.canTargetRuntimeProvideLibrary" forcePluginActivation="true"/>
-        </with>
-      </enablement>
-      <action type="INSTALL">
-        <operation class="org.eclipse.jst.common.project.facet.core.libprov.internal.RuntimeLibraryProviderInstallOperation"/>
-      </action>
-      <action type="UNINSTALL">
-        <operation class="org.eclipse.jst.common.project.facet.core.libprov.internal.RuntimeLibraryProviderUninstallOperation"/>
-      </action>
-    </provider>
-  </extension>
-  
-  <extension point="org.eclipse.core.expressions.propertyTesters">
-    <propertyTester
-      id="org.eclipse.jst.common.project.facet.core.canTargetRuntimeProvideLibrary"
-      type="org.eclipse.jst.common.project.facet.core.libprov.EnablementExpressionContext"
-      namespace="org.eclipse.jst.common.project.facet.core"
-      properties="canTargetRuntimeProvideLibrary"
-      class="org.eclipse.jst.common.project.facet.core.libprov.internal.RuntimeLibraryProviderPropertyTester">
-    </propertyTester>
-  </extension>
-
-  <extension point="org.eclipse.jst.common.project.facet.core.libraryProviders">
-    <provider id="unknown-library-provider" hidden="true">
-      <label>%unknownLibraryProviderLabel</label>
-      <param name="message" value="%unknownLibraryProviderMessage"/>
-      <action type="INSTALL">
-        <operation class="org.eclipse.jst.common.project.facet.core.libprov.internal.UnknownLibraryProviderInstallOperation"/>
-      </action>
-      <action type="UNINSTALL">
-        <operation class="org.eclipse.jst.common.project.facet.core.libprov.NoOpLibraryProviderOperation"/>
-      </action>
-    </provider>
-  </extension>
-  
-  <extension point="org.eclipse.jst.common.project.facet.core.libraryProviders">
-    <provider id="legacy-library-provider" hidden="true">
-      <label>%legacyLibraryProviderLabel</label>
-      <param name="message" value="%legacyLibraryProviderMessage"/>
-      <action type="INSTALL">
-        <operation class="org.eclipse.jst.common.project.facet.core.libprov.internal.LegacyLibraryProviderInstallOperation"/>
-      </action>
-    </provider>
-  </extension>
-  
-  <extension point="org.eclipse.jst.common.project.facet.core.libraryProviders">
-    <provider id="legacy-runtime-library-provider" extends="legacy-library-provider" hidden="true">
-      <action type="UNINSTALL">
-        <operation class="org.eclipse.jst.common.project.facet.core.libprov.internal.LegacyRuntimeLibraryProviderUninstallOperation"/>
-      </action>
-    </provider>
-  </extension>
-
-  <extension point="org.eclipse.jst.common.project.facet.core.legacyLibraryProviderDetectors">
-    <detector class="org.eclipse.jst.common.project.facet.core.libprov.internal.LegacyRuntimeLibraryProviderDetector"/>
-  </extension>
-
-  <extension point="org.eclipse.jst.common.project.facet.core.libraryProviders">
-    <provider id="no-op-library-provider" abstract="true">
-      <label>%noOpLibraryProviderLabel</label>
-      <priority>-1000</priority>
-      <action type="INSTALL">
-        <config class="org.eclipse.jst.common.project.facet.core.libprov.NoOpLibraryProviderInstallOperationConfig"/>
-        <operation class="org.eclipse.jst.common.project.facet.core.libprov.NoOpLibraryProviderOperation"/>
-      </action>
-      <action type="UNINSTALL">
-        <operation class="org.eclipse.jst.common.project.facet.core.libprov.NoOpLibraryProviderOperation"/>
-      </action>
-    </provider>
-  </extension>
-  
-  <extension point="org.eclipse.jst.common.project.facet.core.libraryProviders">
-    <provider id="osgi-bundles-library-provider" abstract="true">
-      <priority>600</priority>
-      <action type="INSTALL">
-        <config class="org.eclipse.jst.common.project.facet.core.libprov.osgi.OsgiBundlesLibraryProviderInstallOperationConfig"/>
-        <operation class="org.eclipse.jst.common.project.facet.core.libprov.osgi.OsgiBundlesLibraryProviderInstallOperation"/>
-      </action>
-      <action type="UNINSTALL">
-        <operation class="org.eclipse.jst.common.project.facet.core.libprov.osgi.OsgiBundlesLibraryProviderUninstallOperation"/>
-      </action>
-      <enablement>
-        <with variable="provider">
-          <test property="eclipse.fproj.jdt.libprov.osgi.bundleReferencesResolvable" value="true" forcePluginActivation="true"/>
-        </with>
-      </enablement>
-    </provider>
-  </extension>
-  
-  <extension point="org.eclipse.jdt.core.classpathContainerInitializer">
-    <classpathContainerInitializer
-      class="org.eclipse.jst.common.project.facet.core.libprov.osgi.internal.OsgiBundlesContainerImpl$Initializer"
-      id="eclipse.fproj.jdt.libprov.osgi"/>
-  </extension>
-  
-  <extension point="org.eclipse.core.expressions.propertyTesters">
-    <propertyTester
-      id="eclipse.fproj.jdt.libprov.osgi.bundleReferencesResolvable"
-      type="org.eclipse.jst.common.project.facet.core.libprov.EnablementExpressionContext"
-      namespace="eclipse.fproj.jdt.libprov.osgi"
-      properties="bundleReferencesResolvable"
-      class="org.eclipse.jst.common.project.facet.core.libprov.osgi.internal.OsgiBundlesLibraryProviderResolvablePropertyTester">
-    </propertyTester>
-    <propertyTester
-      id="eclipse.fproj.jdt.libprov.osgi.bundleReferencesResolvable"
-      type="org.eclipse.jst.common.project.facet.core.libprov.ILibraryProvider"
-      namespace="eclipse.fproj.jdt.libprov.osgi"
-      properties="bundleReferencesResolvable"
-      class="org.eclipse.jst.common.project.facet.core.libprov.osgi.internal.OsgiBundlesLibraryProviderResolvablePropertyTester">
-    </propertyTester>
-  </extension>
-
-</plugin>
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/schemas/downloadableLibraries.exsd b/plugins/org.eclipse.jst.common.project.facet.core/schemas/downloadableLibraries.exsd
deleted file mode 100644
index 4bbf55f..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/schemas/downloadableLibraries.exsd
+++ /dev/null
@@ -1,148 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.jst.common.project.facet.core" xmlns="http://www.w3.org/2001/XMLSchema">
-<annotation>
-      <appinfo>
-         <meta.schema plugin="org.eclipse.jst.common.project.facet.core" id="downloadableLibraries" name="Downloadable Libraries Extension Point"/>
-      </appinfo>
-      <documentation>
-         Provides a way to register libraries that can be downloaded from remote servers. This is a feature of the user library provider.
-      </documentation>
-   </annotation>
-
-   <include schemaLocation="schema://org.eclipse.core.expressions/schema/expressionLanguage.exsd"/>
-
-   <element name="extension">
-      <annotation>
-         <appinfo>
-            <meta.element />
-         </appinfo>
-         <documentation>
-            Allows importing one or more files that contain definitions of downloadable libraries.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="import-definitions" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  A fully qualified identifier of the target extension point.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  An optional identifier of the extension instance.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  An optional name of the extension instance.
-               </documentation>
-               <appinfo>
-                  <meta.attribute translatable="true"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="import-definitions">
-      <annotation>
-         <documentation>
-            Imports a single file that contains definitions of downloadable libraries.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="enablement" minOccurs="0" maxOccurs="1"/>
-         </sequence>
-         <attribute name="path" type="string">
-            <annotation>
-               <documentation>
-                  The local path (within the plugin) to the definitions file. The path attribute is mutually exclusive with the url attribute.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="url" type="string">
-            <annotation>
-               <documentation>
-                  The URL of the definitions file on a remote server. The url attribute is mutually exclusive with the path attribute.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="since"/>
-      </appinfo>
-      <documentation>
-         WTP 3.1
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="examples"/>
-      </appinfo>
-      <documentation>
-         &lt;p&gt;The following example adds downloadable libraries catalog entries from a file that is located within the plugin:&lt;/p&gt;
-
-&lt;pre&gt;
-&lt;extension point=&quot;org.eclipse.jst.common.project.facet.core.downloadableLibraries&quot;&gt;
-  &lt;import-definitions path=&quot;libs/catalog.xml&quot;/&gt;
-&lt;/extension&gt;
-&lt;/pre&gt;
-
-&lt;p&gt;The following example adds catalog entries from a file that is located on a server:&lt;/p&gt;
-
-&lt;pre&gt;
-&lt;extension point=&quot;org.eclipse.jst.common.project.facet.core.downloadableLibraries&quot;&gt;
-  &lt;import-definitions url=&quot;http://www.mycorp.com/libs/catalog.xml&quot;/&gt;
-&lt;/extension&gt;
-&lt;/pre&gt;
-
-&lt;p&gt;Here is an example definition file. Such file can be placed inside a plugin or hosted on a server.
-Multiple libraries can be defined in a single definition file.&lt;/p&gt;
-
-&lt;pre&gt;
-&lt;libraries&gt;
-  &lt;library&gt;
-    &lt;name&gt;EclipseLink 1.0.0&lt;/name&gt;
-    &lt;download-provider&gt;Eclipse Foundation&lt;/download-provider&gt;
-    &lt;download-url&gt;&lt;![CDATA[http://www.eclipse.org/downloads/...]]&gt;&lt;/download-url&gt;
-    &lt;license-url&gt;&lt;![CDATA[http://www.eclipse.org/legal/epl-v10.html]]&gt;&lt;/license-url&gt;&gt;
-    &lt;attributes&gt;
-      &lt;component&gt;eclipselink/jlib/eclipselink.jar&lt;/component&gt;
-      &lt;source&gt;eclipselink/jlib/eclipselink-src.zip&lt;/source&gt;
-      &lt;javadoc&gt;eclipselink/jlib/eclipselink-javadocs.zip&lt;/javadoc&gt;
-    &lt;/attributes&gt;
-  &lt;/library&gt;
-&lt;/libraries&gt;
-&lt;/pre&gt;
-      </documentation>
-   </annotation>
-
-
-
-   <annotation>
-      <appinfo>
-         <meta.section type="copyright"/>
-      </appinfo>
-      <documentation>
-         Copyright (c) 2008 Oracle and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made 
-available under the terms of the Eclipse Public License v1.0 which accompanies 
-this distribution, and is available at &lt;a
-href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/schemas/legacyLibraryProviderDetectors.exsd b/plugins/org.eclipse.jst.common.project.facet.core/schemas/legacyLibraryProviderDetectors.exsd
deleted file mode 100644
index 71f970b..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/schemas/legacyLibraryProviderDetectors.exsd
+++ /dev/null
@@ -1,114 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.jst.common.project.facet.core" xmlns="http://www.w3.org/2001/XMLSchema">
-<annotation>
-      <appinfo>
-         <meta.schema plugin="org.eclipse.jst.common.project.facet.core" id="legacyLibraryProviderDetectors" name="Legacy Library Provider Detectors Extension Point"/>
-      </appinfo>
-      <documentation>
-         Provides a migration path for existing code to Library Provider Framework by allowing registration of detectors that can identify legacy metadata in a project and return a library provider. The registered detectors are called when a call to LibraryProviderFramework.getCurrentProvider() is made and the project metadata maintained by the framework does not show a provider for the facet in question. The detectors should not alter project state, but only return a library provider representing the legacy configuration. The legacy library providers are typically configured as hidden (not available for installation) and only implement the uninstall action.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <annotation>
-         <appinfo>
-            <meta.element />
-         </appinfo>
-         <documentation>
-            Allows registering one or more legacy library provider detectors.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="detector" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  A fully qualified identifier of the target extension point.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  An optional identifier of the extension instance.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  An optional name of the extension instance.
-               </documentation>
-               <appinfo>
-                  <meta.attribute translatable="true"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="detector">
-      <annotation>
-         <documentation>
-            Registers a single legacy library provider detector.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="class" type="string">
-            <annotation>
-               <documentation>
-                  Specifies the class name of the detector.
-               </documentation>
-               <appinfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.jst.common.project.facet.core.libprov.LegacyLibraryProviderDetector:"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="since"/>
-      </appinfo>
-      <documentation>
-         WTP 3.1
-
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="examples"/>
-      </appinfo>
-      <documentation>
-         &lt;p&gt;The following example registers two detectors:&lt;/p&gt;
-
-&lt;pre&gt;
-&lt;extension point=&quot;org.eclipse.jst.common.project.facet.core.legacyLibraryProviderDetectors&quot;&gt;
-  &lt;detector class=&quot;com.mycompany.Detector1&quot;/&gt;
-  &lt;detector class=&quot;com.mycompany.Detector2&quot;/&gt;
-&lt;/extension&gt;
-&lt;/pre&gt;
-      </documentation>
-   </annotation>
-
-
-
-   <annotation>
-      <appinfo>
-         <meta.section type="copyright"/>
-      </appinfo>
-      <documentation>
-         Copyright (c) 2008 Oracle and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made 
-available under the terms of the Eclipse Public License v1.0 which accompanies 
-this distribution, and is available at &lt;a
-href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/schemas/libraryProviders.exsd b/plugins/org.eclipse.jst.common.project.facet.core/schemas/libraryProviders.exsd
deleted file mode 100644
index 3e6f962..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/schemas/libraryProviders.exsd
+++ /dev/null
@@ -1,245 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.jst.common.project.facet.core.libprov" xmlns="http://www.w3.org/2001/XMLSchema">
-<annotation>
-      <appinfo>
-         <meta.schema plugin="org.eclipse.jst.common.project.facet.core.libprov" id="libraryProviders" name="Library Providers Extension Point"/>
-      </appinfo>
-      <documentation>
-         [Enter description of this extension point.]
-      </documentation>
-   </annotation>
-
-   <include schemaLocation="schema://org.eclipse.core.expressions/schema/expressionLanguage.exsd"/>
-
-   <element name="extension">
-      <annotation>
-         <appinfo>
-            <meta.element />
-         </appinfo>
-         <documentation>
-            (no description available)
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="provider" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appinfo>
-                  <meta.attribute translatable="true"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="provider">
-      <annotation>
-         <documentation>
-            (no description available)
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="label" minOccurs="0" maxOccurs="1"/>
-            <element ref="priority" minOccurs="0" maxOccurs="1"/>
-            <element ref="enablement" minOccurs="0" maxOccurs="1"/>
-            <element ref="param" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="action" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  (no description available)
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="extends" type="string">
-            <annotation>
-               <documentation>
-                  (no description available)
-               </documentation>
-               <appinfo>
-                  <meta.attribute kind="identifier" basedOn="org.eclipse.jst.common.project.facet.core.libraryProviders/provider/@id"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-         <attribute name="abstract" type="boolean">
-            <annotation>
-               <documentation>
-                  (no description available)
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="hidden" type="boolean">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="param">
-      <annotation>
-         <documentation>
-            (no description available)
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="name" type="string" use="required">
-            <annotation>
-               <documentation>
-                  (no description available)
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="value" type="string">
-            <annotation>
-               <documentation>
-                  (no description available)
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="action">
-      <annotation>
-         <documentation>
-            (no description available)
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="config" minOccurs="0" maxOccurs="1"/>
-            <element ref="operation"/>
-         </sequence>
-         <attribute name="type" use="required">
-            <annotation>
-               <documentation>
-                  (no description available)
-               </documentation>
-            </annotation>
-            <simpleType>
-               <restriction base="string">
-                  <enumeration value="INSTALL">
-                  </enumeration>
-                  <enumeration value="UNINSTALL">
-                  </enumeration>
-               </restriction>
-            </simpleType>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="config">
-      <annotation>
-         <documentation>
-            (no description available)
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  (no description available)
-               </documentation>
-               <appinfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.jst.common.project.facet.core.libprov.LibraryProviderOperationConfig:"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="operation">
-      <annotation>
-         <documentation>
-            (no description available)
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="class" type="string">
-            <annotation>
-               <documentation>
-                  (no description available)
-               </documentation>
-               <appinfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.jst.common.project.facet.core.libprov.LibraryProviderOperation:"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="label" type="string">
-      <annotation>
-         <documentation>
-            (no description available)
-         </documentation>
-      </annotation>
-   </element>
-
-   <element name="priority" type="string">
-      <annotation>
-         <documentation>
-            (no description available)
-         </documentation>
-      </annotation>
-   </element>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="since"/>
-      </appinfo>
-      <documentation>
-         WTP 3.1
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="examples"/>
-      </appinfo>
-      <documentation>
-         [Enter extension point usage example here.]
-      </documentation>
-   </annotation>
-
-
-
-   <annotation>
-      <appinfo>
-         <meta.section type="copyright"/>
-      </appinfo>
-      <documentation>
-         Copyright (c) 2008 Oracle and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made 
-available under the terms of the Eclipse Public License v1.0 which accompanies 
-this distribution, and is available at &lt;a
-href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/ClasspathHelper.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/ClasspathHelper.java
deleted file mode 100644
index 91aa166..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/ClasspathHelper.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core;
-
-import java.util.List;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jst.common.project.facet.core.internal.ClasspathUtil;
-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;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-
-/**
- * <p>A utility used in conjunction with IClasspathProvider in order to manage
- * the bookkeeping when project facets are installed and uninstalled, and when
- * the bound runtime changes. This utility tracks which classpath entries were
- * added to the project by which facet and stores this information in a project
- * metadata file. This enables the classpath entries to be removed without
- * knowing what they are. It is only necessary to know which facet added them.
- * This utility supports the case where the same classpath entry is added by
- * multiple project facets. In this situation, a classpath entry is only
- * removed when the removal has been requested for all of the facets that added
- * it.</p>
- * 
- * <p>Typically the project facet author will write something like this in the
- * install delegate:</p>
- * 
- * <pre>
- * if( ! ClasspathHelper.addClasspathEntries( project, fv )
- * {
- *     // Handle the case when there is no bound runtime or when the bound
- *     // runtime cannot provide classpath entries for this facet.
- *     
- *     final List alternate = ...;
- *     ClasspathHelper.addClasspathEntries( project, fv, alternate );
- * }
- * </pre>
- * 
- * <p>And something like this in the uninstall delegate:</p>
- * 
- * <pre>
- * ClasspathHelper.removeClasspathEntries( project, fv );
- * </pre>
- * 
- * <p>And something like this in the runtime changed delegate:</p>
- * 
- * <pre>
- * ClasspathHelper.removeClasspathEntries( project, fv );
- * 
- * if( ! ClasspathHelper.addClasspathEntries( project, fv )
- * {
- *     // Handle the case when there is no bound runtime or when the bound
- *     // runtime cannot provide classpath entries for this facet.
- *     
- *     final List alternate = ...;
- *     ClasspathHelper.addClasspathEntries( project, fv, alternate );
- * }
- * </pre>
- * 
- * <p>And something like this in the version change delegate:</p>
- * 
- * <pre>
- * final IProjectFacetVersion oldver
- *   = fproj.getInstalledVersion( fv.getProjectFacet() );
- * 
- * ClasspathHelper.removeClasspathEntries( project, oldver );
- * 
- * if( ! ClasspathHelper.addClasspathEntries( project, fv )
- * {
- *     // Handle the case when there is no bound runtime or when the bound
- *     // runtime cannot provide classpath entries for this facet.
- *     
- *     final List alternate = ...;
- *     ClasspathHelper.addClasspathEntries( project, fv, alternate );
- * }
- * </pre>
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class ClasspathHelper
-{
-    /**
-     * @since 1.4
-     */
-    
-    public static final String LEGACY_METADATA_FILE_NAME = ClasspathUtil.LEGACY_METADATA_FILE_NAME;
-    
-    private ClasspathHelper() {}
-    
-    /**
-     * Convenience method for adding to the project the classpath entries
-     * provided for the specified project facet by the runtime bound to the
-     * project. The entries are marked as belonging to the specified project
-     * facet.
-     *   
-     * @param project the project
-     * @param fv the project facet version that will own these entries
-     * @return <code>true</code> if classpath entries were added, or
-     *   <code>false</code> if there is no runtime bound to the project or if
-     *   it cannot provide classpath entries for the specified facet
-     * @throws CoreException if failed while adding the classpath entries
-     */
-    
-    public static boolean addClasspathEntries( final IProject project,
-                                               final IProjectFacetVersion fv )
-    
-        throws CoreException
-        
-    {
-        final IFacetedProject fproj = ProjectFacetsManager.create( project );
-        final IRuntime runtime = fproj.getPrimaryRuntime();
-        
-        if( runtime != null )
-        {
-            final IClasspathProvider cpprov 
-                = (IClasspathProvider) runtime.getAdapter( IClasspathProvider.class );
-            
-            final List<IClasspathEntry> cpentries = cpprov.getClasspathEntries( fv );
-            
-            if( cpentries != null )
-            {
-                addClasspathEntries( project, fv, cpentries );
-                return true;
-            }
-        }
-        
-        return false;
-    }
-    
-    /**
-     * Add the provided classpath entries to project and marks them as belonging
-     * to the specified project facet.
-     * 
-     * @param project the project
-     * @param fv the project facet version that will own these entries
-     * @param cpentries the classpath entries (element type: 
-     *   {@see IClasspathEntry})
-     * @throws CoreException if failed while adding the classpath entries
-     */
-    
-    public static void addClasspathEntries( final IProject project,
-                                            final IProjectFacetVersion fv,
-                                            final List<IClasspathEntry> cpentries )
-    
-        throws CoreException
-        
-    {
-        ClasspathUtil.addClasspathEntries( project, fv.getProjectFacet(), cpentries );
-    }
-    
-    /**
-     * Removes the classpath entries belonging to the specified project facet.
-     * Any entries that also belong to another facet are left in place.
-     * 
-     * @param project the project
-     * @param fv the project facet that owns the entries that should be removed
-     * @throws CoreException if failed while removing classpath entries
-     */
-    
-    public static void removeClasspathEntries( final IProject project,
-                                               final IProjectFacetVersion fv )
-    
-        throws CoreException
-        
-    {
-        ClasspathUtil.removeClasspathEntries( project, fv.getProjectFacet() );
-    }
-    
-
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/IClasspathProvider.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/IClasspathProvider.java
deleted file mode 100644
index 4f0fd30..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/IClasspathProvider.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core;
-
-import java.util.List;
-
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * The interface implemented by a runtime component adapter in order to provide
- * classpath entries for project facets. For convenience, the runtime can also
- * be adapted to this interface. That adapter will delegate to the runtime 
- * components in the order that they are listed in the runtime. The first one 
- * that can provide classpath entries for the specified project facet wins. 
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public interface IClasspathProvider
-{
-    /**
-     * Returns the classpath entries for the specified project facet.
-     * 
-     * @param fv the project facet version
-     * @return returns the classpath entries for the specified project facet, or
-     *   <code>null</code> if this provider does not provide classpath entries
-     *   for the given project facet
-     */
-    
-    List<IClasspathEntry> getClasspathEntries( IProjectFacetVersion fv );
-    
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/JavaFacet.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/JavaFacet.java
deleted file mode 100644
index cc2d95e..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/JavaFacet.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jst.common.project.facet.core.internal.FacetedProjectFrameworkJavaPlugin;
-import org.eclipse.wst.common.project.facet.core.FacetedProjectFramework;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class JavaFacet 
-{
-    public static final String ID = "jst.java"; //$NON-NLS-1$
-    
-    public static final IProjectFacet FACET 
-        = ProjectFacetsManager.getProjectFacet( ID );
-    
-    public static final IProjectFacetVersion JAVA_13
-        = FACET.getVersion( "1.3" ); //$NON-NLS-1$
-    
-    public static final IProjectFacetVersion JAVA_14
-        = FACET.getVersion( "1.4" ); //$NON-NLS-1$
-    
-    public static final IProjectFacetVersion JAVA_50
-        = FACET.getVersion( "5.0" ); //$NON-NLS-1$
-    
-    public static final IProjectFacetVersion JAVA_60
-        = FACET.getVersion( "6.0" ); //$NON-NLS-1$
-
-    public static boolean isInstalled( final IProject project )
-    {
-        try
-        {
-            return FacetedProjectFramework.hasProjectFacet( project, ID );
-        }
-        catch( CoreException e )
-        {
-            FacetedProjectFrameworkJavaPlugin.log( e );
-            return false;
-        }
-    }
-    
-    /**
-     * Checks whether the specified project is a Java project.
-     * 
-     * @param pj the project to check.
-     * @return <code>true</code> if the project is a Java project
-     * @since 1.4
-     */
-    
-    public static boolean isJavaProject( final IProject project )
-    {
-        try
-        {
-            return project.getNature( JavaCore.NATURE_ID ) != null;
-        }
-        catch( CoreException e )
-        {
-            return false;
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/JavaFacetInstallConfig.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/JavaFacetInstallConfig.java
deleted file mode 100644
index 7b108c5..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/JavaFacetInstallConfig.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Set;
-import java.util.concurrent.CopyOnWriteArrayList;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jst.common.project.facet.core.internal.FacetCorePlugin;
-import org.eclipse.jst.common.project.facet.core.internal.JavaFacetUtil;
-import org.eclipse.wst.common.project.facet.core.ActionConfig;
-import org.eclipse.wst.common.project.facet.core.util.EventListenerRegistry;
-import org.eclipse.wst.common.project.facet.core.util.IEventListener;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public class JavaFacetInstallConfig
-
-    extends ActionConfig
-    
-{
-    private static final String PROD_PROP_OUTPUT_FOLDER = "defaultJavaOutputFolder"; //$NON-NLS-1$
-    private static final String PROD_PROP_OUTPUT_FOLDER_LEGACY = "outputFolder"; //$NON-NLS-1$
-    private static final String DEFAULT_OUTPUT_FOLDER = "build/classes"; //$NON-NLS-1$
-    
-    public static class ChangeEvent
-    {
-        public enum Type
-        {
-            SOURCE_FOLDERS_CHANGED,
-            DEFAULT_OUTPUT_FOLDER_CHANGED
-        }
-        
-        private final Type type;
-        private final JavaFacetInstallConfig installConfig;
-        
-        ChangeEvent( final Type type,
-                     final JavaFacetInstallConfig installConfig )
-        {
-            this.type = type;
-            this.installConfig = installConfig;
-        }
-        
-        public final Type getType()
-        {
-            return this.type;
-        }
-
-        public final JavaFacetInstallConfig getJavaFacetInstallConfig()
-        {
-            return this.installConfig;
-        }
-    }
-    
-    private EventListenerRegistry<ChangeEvent.Type,ChangeEvent> listeners;
-    private List<IPath> sourceFolders;
-    private List<IPath> sourceFoldersReadOnly;
-    private IPath defaultOutputFolder;
-    
-    public JavaFacetInstallConfig()
-    {
-        this.listeners = new EventListenerRegistry<ChangeEvent.Type,ChangeEvent>( ChangeEvent.Type.class );
-        
-        this.sourceFolders = new CopyOnWriteArrayList<IPath>();
-        this.sourceFoldersReadOnly = Collections.unmodifiableList( this.sourceFolders );
-        this.defaultOutputFolder = null;
-        
-        String sourceFolder = FacetCorePlugin.getJavaSrcFolder();
-        
-        this.sourceFolders.add( new Path( sourceFolder ) );
-        
-        String outputFolder = getProductProperty( PROD_PROP_OUTPUT_FOLDER );
-        
-        if( outputFolder == null )
-        {
-            outputFolder = getProductProperty( PROD_PROP_OUTPUT_FOLDER_LEGACY );
-        }
-        
-        if( outputFolder == null )
-        {
-            outputFolder = DEFAULT_OUTPUT_FOLDER;
-        }
-        
-        this.defaultOutputFolder = new Path( outputFolder );
-    }
-    
-    @Override
-    public Set<IFile> getValidateEditFiles()
-    {
-        final Set<IFile> files = super.getValidateEditFiles();
-        final IProject project = getFacetedProjectWorkingCopy().getProject();
-        
-        if( project != null )
-        {
-            files.add( project.getFile( IProjectDescription.DESCRIPTION_FILE_NAME ) );
-            files.add( project.getFile( JavaFacetUtil.FILE_CLASSPATH ) );
-            files.add( project.getFile( JavaFacetUtil.FILE_JDT_CORE_PREFS ) );
-            files.add( project.getFile( ClasspathHelper.LEGACY_METADATA_FILE_NAME ) );
-        }
-        
-        return files;
-    }
-
-    public List<IPath> getSourceFolders()
-    {
-        return this.sourceFoldersReadOnly;
-    }
-    
-    public void setSourceFolders( final List<IPath> paths )
-    {
-        if( ! this.sourceFolders.equals( paths ) )
-        {
-            this.sourceFolders.clear();
-            this.sourceFolders.addAll( paths );
-
-            final ChangeEvent event = new ChangeEvent( ChangeEvent.Type.SOURCE_FOLDERS_CHANGED, this );
-            this.listeners.notifyListeners( ChangeEvent.Type.SOURCE_FOLDERS_CHANGED, event );
-        }
-    }
-    
-    public void setSourceFolder( final IPath path )
-    {
-        final List<IPath> newSourceFolders;
-        
-        if( path == null )
-        {
-            newSourceFolders = Collections.emptyList();
-        }
-        else
-        {
-            newSourceFolders = Collections.singletonList( path );
-        }
-        
-        setSourceFolders( newSourceFolders );
-    }
-    
-    public void addSourceFolder( final IPath path )
-    {
-        final List<IPath> newSourceFolders = new ArrayList<IPath>( getSourceFolders() );
-        newSourceFolders.add( path );
-        setSourceFolders( newSourceFolders );
-    }
-    
-    public void removeSourceFolder( final IPath path )
-    {
-        final List<IPath> newSourceFolders = new ArrayList<IPath>( getSourceFolders() );
-        newSourceFolders.remove( path );
-        setSourceFolders( newSourceFolders );
-    }
-    
-    public IPath getDefaultOutputFolder()
-    {
-        return this.defaultOutputFolder;
-    }
-    
-    public void setDefaultOutputFolder( final IPath defaultOutputFolder )
-    {
-        if( ! equal( this.defaultOutputFolder, defaultOutputFolder ) )
-        {
-            this.defaultOutputFolder = defaultOutputFolder;
-            
-            final ChangeEvent event = new ChangeEvent( ChangeEvent.Type.DEFAULT_OUTPUT_FOLDER_CHANGED, this );
-            this.listeners.notifyListeners( ChangeEvent.Type.DEFAULT_OUTPUT_FOLDER_CHANGED, event );
-        }
-    }
-    
-    public void addListener( final IEventListener<ChangeEvent> listener,
-                             final ChangeEvent.Type... types )
-    {
-        this.listeners.addListener( listener, types );
-    }
-    
-    public void removeListener( final IEventListener<ChangeEvent> listener )
-    {
-        this.listeners.removeListener( listener );
-    }
-    
-    
-
-    private static boolean equal( final Object obj1,
-                                  final Object obj2 )
-    {
-        if( obj1 == null || obj2 == null )
-        {
-            return false;
-        }
-        else
-        {
-            return obj1.equals( obj2 );
-        }
-    }
-    
-    private static String getProductProperty( final String propName )
-    {
-        String value = null;
-        
-        if( Platform.getProduct() != null )
-        {
-            value = Platform.getProduct().getProperty( propName );
-        }
-        
-        return value;
-    }
-    
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/JavaFacetUninstallConfig.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/JavaFacetUninstallConfig.java
deleted file mode 100644
index e58c224..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/JavaFacetUninstallConfig.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core;
-
-import java.util.Set;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.jst.common.project.facet.core.internal.JavaFacetUtil;
-import org.eclipse.wst.common.project.facet.core.ActionConfig;
-
-/**
- * @since 1.4
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public class JavaFacetUninstallConfig
-
-    extends ActionConfig
-    
-{
-    @Override
-    public Set<IFile> getValidateEditFiles()
-    {
-        final Set<IFile> files = super.getValidateEditFiles();
-        final IProject project = getFacetedProjectWorkingCopy().getProject();
-        
-        files.add( project.getFile( IProjectDescription.DESCRIPTION_FILE_NAME ) );
-        files.add( project.getFile( JavaFacetUtil.FILE_CLASSPATH ) );
-        files.add( project.getFile( JavaFacetUtil.FILE_JDT_CORE_PREFS ) );
-        files.add( project.getFile( ClasspathHelper.LEGACY_METADATA_FILE_NAME ) );
-        
-        return files;
-    }
-    
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/JavaFacetVersionChangeConfig.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/JavaFacetVersionChangeConfig.java
deleted file mode 100644
index b529009..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/JavaFacetVersionChangeConfig.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core;
-
-import java.util.Set;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.jst.common.project.facet.core.internal.JavaFacetUtil;
-import org.eclipse.wst.common.project.facet.core.ActionConfig;
-
-/**
- * @since 1.4
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public class JavaFacetVersionChangeConfig
-
-    extends ActionConfig
-    
-{
-    @Override
-    public Set<IFile> getValidateEditFiles()
-    {
-        final Set<IFile> files = super.getValidateEditFiles();
-        final IProject project = getFacetedProjectWorkingCopy().getProject();
-        
-        files.add( project.getFile( JavaFacetUtil.FILE_CLASSPATH ) );
-        files.add( project.getFile( JavaFacetUtil.FILE_JDT_CORE_PREFS ) );
-        files.add( project.getFile( ClasspathHelper.LEGACY_METADATA_FILE_NAME ) );
-        
-        return files;
-    }
-    
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/StandardJreRuntimeComponent.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/StandardJreRuntimeComponent.java
deleted file mode 100644
index 000ab14..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/StandardJreRuntimeComponent.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.jdt.launching.IVMInstall;
-import org.eclipse.jdt.launching.IVMInstall2;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponent;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponentType;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponentVersion;
-import org.eclipse.wst.common.project.facet.core.runtime.RuntimeManager;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class StandardJreRuntimeComponent 
-{
-    public static final String TYPE_ID = "standard.jre"; //$NON-NLS-1$
-    
-    public static final IRuntimeComponentType TYPE 
-        = RuntimeManager.getRuntimeComponentType( TYPE_ID );
-    
-    public static final IRuntimeComponentVersion VERSION_1_3
-        = TYPE.getVersion( "1.3" ); //$NON-NLS-1$
-    
-    public static final IRuntimeComponentVersion VERSION_1_4
-        = TYPE.getVersion( "1.4" ); //$NON-NLS-1$
-
-    public static final IRuntimeComponentVersion VERSION_5_0
-        = TYPE.getVersion( "5.0" ); //$NON-NLS-1$
-    
-    public static final IRuntimeComponentVersion VERSION_6_0
-        = TYPE.getVersion( "6.0" ); //$NON-NLS-1$
-    
-    public static final String PROP_VM_INSTALL_TYPE = "vm-install-type"; //$NON-NLS-1$
-    public static final String PROP_VM_INSTALL_ID = "vm-install-id"; //$NON-NLS-1$
-    
-    public static IRuntimeComponent create( final IVMInstall vmInstall )
-    {
-        String jvmver = null;
-        
-        if( vmInstall instanceof IVMInstall2 )
-        {
-            final IVMInstall2 vmInstall2 = (IVMInstall2) vmInstall;
-            jvmver = vmInstall2.getJavaVersion();
-        }
-        
-        final IRuntimeComponentVersion rcv;
-        
-        if( jvmver == null ) 
-        {
-            rcv = StandardJreRuntimeComponent.VERSION_6_0;
-        } 
-        else if( jvmver.startsWith( "1.3" ) ) //$NON-NLS-1$
-        {
-            rcv = StandardJreRuntimeComponent.VERSION_1_3;
-        }
-        else if( jvmver.startsWith( "1.4" ) ) //$NON-NLS-1$
-        {
-            rcv = StandardJreRuntimeComponent.VERSION_1_4;
-        }
-        else if( jvmver.startsWith( "1.5" ) || jvmver.startsWith( "5.0" ) ) //$NON-NLS-1$ //$NON-NLS-2$
-        {
-            rcv = StandardJreRuntimeComponent.VERSION_5_0;
-        }
-        else if( jvmver.startsWith( "1.6" ) || jvmver.startsWith( "6.0" ) ) //$NON-NLS-1$ //$NON-NLS-2$
-        {
-            rcv = StandardJreRuntimeComponent.VERSION_6_0;
-        }
-        else 
-        {
-            rcv = StandardJreRuntimeComponent.VERSION_6_0;
-        }
-        
-        final Map<String,String> properties = new HashMap<String,String>();
-        
-        if( vmInstall != null )
-        {
-            properties.put( StandardJreRuntimeComponent.PROP_VM_INSTALL_TYPE, 
-                            vmInstall.getVMInstallType().getId() );
-            
-            properties.put( StandardJreRuntimeComponent.PROP_VM_INSTALL_ID, 
-                            vmInstall.getId() );
-        }
-        
-        return RuntimeManager.createRuntimeComponent( rcv, properties );
-    }
-    
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/ClasspathUtil.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/ClasspathUtil.java
deleted file mode 100644
index fa44440..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/ClasspathUtil.java
+++ /dev/null
@@ -1,522 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.internal;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.ListIterator;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ProjectScope;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.jdt.core.IClasspathAttribute;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.internal.core.ClasspathEntry;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.osgi.service.prefs.BackingStoreException;
-import org.osgi.service.prefs.Preferences;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-@SuppressWarnings( "restriction" )
-public final class ClasspathUtil
-{
-    public static final String LEGACY_METADATA_FILE_NAME 
-        = ".settings/org.eclipse.jst.common.project.facet.core.prefs"; //$NON-NLS-1$
-
-    public static final Object SYSTEM_OWNER = new Object();
-    private static final String OWNER_PROJECT_FACETS_ATTR = "owner.project.facets"; //$NON-NLS-1$
-    
-    private ClasspathUtil() {}
-
-    public static List<IClasspathEntry> getProjectClasspath( final IJavaProject jproj )
-    
-        throws CoreException
-        
-    {
-        final List<IClasspathEntry> result = new ArrayList<IClasspathEntry>();
-        
-        for( IClasspathEntry cpe : jproj.getRawClasspath() )
-        {
-            result.add( cpe );
-        }
-        
-        return result;
-    }
-    
-    public static void setProjectClasspath( final IJavaProject jproj,
-                                            final List<IClasspathEntry> cp )
-    
-        throws CoreException
-        
-    {
-        jproj.setRawClasspath( cp.toArray( new IClasspathEntry[ cp.size() ] ), null );
-    }
-    
-    public static void addClasspathEntry( final IProject project,
-                                          final IClasspathEntry cpe )
-    
-        throws CoreException
-        
-    {
-        addClasspathEntry( JavaCore.create( project ), cpe );
-    }
-
-    public static void addClasspathEntry( final IJavaProject project,
-                                          final IClasspathEntry cpe )
-    
-        throws CoreException
-        
-    {
-        final IClasspathEntry[] cpOld = project.getRawClasspath();
-        final IClasspathEntry[] cpNew = new IClasspathEntry[ cpOld.length + 1 ];
-        System.arraycopy( cpOld, 0, cpNew, 0, cpOld.length );
-        cpNew[ cpOld.length ] = cpe;
-        project.setRawClasspath( cpNew, null );
-    }
-
-    public static List<IClasspathEntry> getClasspathEntries( final IProject project,
-                                                             final IProjectFacet facet )
-                                                             
-        throws CoreException
-        
-    {
-        final IJavaProject jproj = JavaCore.create( project );
-        return getClasspathEntries( jproj, facet );
-    }
-    
-    public static List<IClasspathEntry> getClasspathEntries( final IJavaProject project,
-                                                             final IProjectFacet facet )
-    
-        throws CoreException
-        
-    {
-        final List<IClasspathEntry> result = new ArrayList<IClasspathEntry>();
-        
-        for( IClasspathEntry cpe : project.getRawClasspath() )
-        {
-            final Set<Object> owners = getOwners( project, cpe );
-            
-            if( owners.contains( facet ) )
-            {
-                result.add( cpe );
-            }
-        }
-        
-        return result;
-    }
-    
-    
-    public static void addClasspathEntries( final IProject project,
-                                            final IProjectFacet facet,
-                                            final List<IClasspathEntry> cpentries )
-    
-        throws CoreException
-        
-    {
-        final IJavaProject jproj = JavaCore.create( project );
-        addClasspathEntries( jproj, facet, cpentries );
-    }
-    
-    public static void addClasspathEntries( final IJavaProject project,
-                                            final IProjectFacet facet,
-                                            final List<IClasspathEntry> cpentries )
-    
-        throws CoreException
-        
-    {
-        convertLegacyMetadata( project );
-        
-        final List<IClasspathEntry> cp = getProjectClasspath( project );
-        
-        for( IClasspathEntry cpe : cpentries )
-        {
-            IClasspathEntry existingClasspathEntry = null;
-            
-            for( IClasspathEntry x : cp )
-            {
-                if( x.getPath().equals( cpe.getPath() ) )
-                {
-                    existingClasspathEntry = x;
-                    break;
-                }
-            }
-
-            final Set<Object> owners = getOwners( project, existingClasspathEntry );
-            
-            owners.add( facet );
-            
-            if( existingClasspathEntry != null )
-            {
-                final IClasspathEntry annotatedEntry = setOwners( existingClasspathEntry, owners );
-                final int existingIndex = cp.indexOf( existingClasspathEntry );
-                cp.set( existingIndex, annotatedEntry );
-            }
-            else
-            {
-                final IClasspathEntry annotatedEntry = setOwners( cpe, owners );
-                cp.add( annotatedEntry );
-            }
-        }
-
-        setProjectClasspath( project, cp );
-    }
-    
-    public static void removeClasspathEntries( final IProject project,
-                                               final IProjectFacet facet )
-    
-        throws CoreException
-        
-    {
-        final IJavaProject jproj = JavaCore.create( project );
-        removeClasspathEntries( jproj, facet );
-    }
-        
-    public static void removeClasspathEntries( final IJavaProject project,
-                                               final IProjectFacet facet )
-    
-        throws CoreException
-        
-    {
-        convertLegacyMetadata( project );
-        
-        final List<IClasspathEntry> cp = getProjectClasspath( project );
-        boolean cpchanged = false;
-        
-        for( ListIterator<IClasspathEntry> itr = cp.listIterator(); itr.hasNext(); )
-        {
-            final IClasspathEntry cpe = itr.next();
-            final Set<Object> owners = getOwners( project, cpe );
-            
-            if( owners.remove( facet ) )
-            {
-                if( owners.size() == 0 )
-                {
-                    itr.remove();
-                }
-                else
-                {
-                    itr.set( setOwners( cpe, owners ) );
-                }
-                
-                cpchanged = true;
-            }
-        }
-
-        if( cpchanged )
-        {
-            setProjectClasspath( project, cp );
-        }
-    }
-
-    public static void removeClasspathEntries( final IProject project,
-                                               final IProjectFacet facet,
-                                               final List<IClasspathEntry> cpentries )
-    
-        throws CoreException
-        
-    {
-        final IJavaProject jproj = JavaCore.create( project );
-        removeClasspathEntries( jproj, facet, cpentries );
-    }
-        
-    public static void removeClasspathEntries( final IJavaProject project,
-                                               final IProjectFacet facet,
-                                               final List<IClasspathEntry> cpentries )
-    
-        throws CoreException
-        
-    {
-        convertLegacyMetadata( project );
-        
-        final List<IClasspathEntry> cp = getProjectClasspath( project );
-        boolean cpchanged = false;
-        
-        for( ListIterator<IClasspathEntry> itr = cp.listIterator(); itr.hasNext(); )
-        {
-            final IClasspathEntry cpe = itr.next();
-            
-            if( cpentries.contains( cpe ) )
-            {
-                final Set<Object> owners = getOwners( project, cpe );
-                
-                if( owners.remove( facet ) )
-                {
-                    if( owners.size() == 0 )
-                    {
-                        itr.remove();
-                    }
-                    else
-                    {
-                        itr.set( setOwners( cpe, owners ) );
-                    }
-                    
-                    cpchanged = true;
-                }
-            }
-        }
-
-        if( cpchanged )
-        {
-            setProjectClasspath( project, cp );
-        }
-    }
-    
-    private static Set<Object> getOwners( final IJavaProject project,
-                                          final IClasspathEntry cpe )
-                                          
-        throws CoreException
-        
-    {
-        final Set<Object> owners = new HashSet<Object>();
-        
-        if( cpe != null )
-        {
-            for( IClasspathAttribute attr : cpe.getExtraAttributes() )
-            {
-                if( attr.getName().equals( OWNER_PROJECT_FACETS_ATTR ) )
-                {
-                    owners.addAll( decodeOwnersString( attr.getValue() ) );
-                    break;
-                }
-            }
-            
-            owners.addAll( getOwnersFromLegacyMetadata( project, cpe ) );
-            
-            if( owners.isEmpty() )
-            {
-                owners.add( SYSTEM_OWNER );
-            }
-        }
-        
-        return owners;
-    }
-
-    private static Set<Object> getOwnersFromLegacyMetadata( final IJavaProject project,
-                                                            final IClasspathEntry cpe )
-    
-        throws CoreException
-        
-    {
-        final IProject pj = project.getProject();
-        final IFile legacyMetadataFile = pj.getFile( LEGACY_METADATA_FILE_NAME );
-        
-        if( legacyMetadataFile.exists() )
-        {
-            final ProjectScope scope = new ProjectScope( pj );
-            final IEclipsePreferences pluginRoot = scope.getNode( FacetCorePlugin.PLUGIN_ID );
-            final Preferences root = pluginRoot.node( "classpath.helper" ); //$NON-NLS-1$
-            
-            final String[] keys;
-            
-            try
-            {
-                keys = root.childrenNames();
-            }
-            catch( BackingStoreException e )
-            {
-                throw new CoreException( FacetCorePlugin.createErrorStatus( e.getMessage(), e ) );
-            }
-            
-            for( String key : keys )
-            {
-                final Preferences node = root.node( key );
-                final String owners = node.get( "owners", null ); //$NON-NLS-1$
-                
-                if( owners != null )
-                {
-                    final IPath path = new Path( key.replaceAll( "::", "/" ) ); //$NON-NLS-1$ //$NON-NLS-2$
-                    
-                    if( cpe.getPath().equals( path ) )
-                    {
-                        return decodeOwnersString( owners );
-                    }
-                }
-            }
-        }
-        
-        return Collections.emptySet();
-    }
-
-    private static IClasspathEntry setOwners( final IClasspathEntry cpe,
-                                              final Set<Object> owners )
-    {
-        if( owners.size() == 1 && owners.iterator().next() == SYSTEM_OWNER )
-        {
-            owners.clear();
-        }
-        
-        final String ownersString = ( owners.size() == 0 ? null : encodeOwnersString( owners ) );
-        return setOwners( cpe, ownersString );
-    }
-
-    private static IClasspathEntry setOwners( final IClasspathEntry cpe,
-                                              final String owners )
-    {
-        final List<IClasspathAttribute> attrs = new ArrayList<IClasspathAttribute>();
-        
-        for( IClasspathAttribute attr : cpe.getExtraAttributes() )
-        {
-            if( ! attr.getName().equals( OWNER_PROJECT_FACETS_ATTR ) )
-            {
-                attrs.add( attr );
-            }
-        }
-        
-        if( owners != null )
-        {
-            attrs.add( JavaCore.newClasspathAttribute( OWNER_PROJECT_FACETS_ATTR, owners ) );
-        }
-        
-        return new ClasspathEntry( cpe.getContentKind(), cpe.getEntryKind(), cpe.getPath(),
-                                   cpe.getInclusionPatterns(), cpe.getExclusionPatterns(),
-                                   cpe.getSourceAttachmentPath(), cpe.getSourceAttachmentRootPath(),
-                                   cpe.getOutputLocation(), cpe.isExported(), cpe.getAccessRules(),
-                                   cpe.combineAccessRules(), 
-                                   attrs.toArray( new IClasspathAttribute[ attrs.size() ] ) );
-    }
-
-    private static String encodeOwnersString( final Set<Object> owners )
-    {
-        final StringBuilder buf = new StringBuilder();
-        
-        for( Object owner : owners )
-        {
-            if( buf.length() > 0 ) 
-            {
-                buf.append( ';' );
-            }
-            
-            if( owner == SYSTEM_OWNER )
-            {
-                buf.append( "#system#" ); //$NON-NLS-1$
-            }
-            else
-            {
-                final IProjectFacet facet = (IProjectFacet) owner;
-                buf.append( facet.getId() );
-            }
-        }
-        
-        return buf.toString();
-    }
-    
-    private static Set<Object> decodeOwnersString( final String str )
-    {
-        final Set<Object> owners = new HashSet<Object>();
-        final String[] split = str.split( ";" ); //$NON-NLS-1$
-        
-        for( int j = 0; j < split.length; j++ )
-        {
-            final String segment = split[ j ];
-            
-            if( segment.equals( "#system#" ) ) //$NON-NLS-1$
-            {
-                owners.add( SYSTEM_OWNER );
-            }
-            else
-            {
-                String facetId = segment;
-                final int colon = facetId.indexOf( ':' );
-                
-                if( colon != -1 )
-                {
-                    facetId = facetId.substring( 0, colon );
-                }
-                
-                owners.add( ProjectFacetsManager.getProjectFacet( facetId ) );
-            }
-        }
-        
-        return owners;
-    }
-    
-    private static void convertLegacyMetadata( final IJavaProject project )
-    
-        throws CoreException
-        
-    {
-        final IProject pj = project.getProject();
-        final IFile legacyMetadataFile = pj.getFile( LEGACY_METADATA_FILE_NAME );
-        
-        if( legacyMetadataFile.exists() )
-        {
-            final ProjectScope scope = new ProjectScope( pj );
-            final IEclipsePreferences pluginRoot = scope.getNode( FacetCorePlugin.PLUGIN_ID );
-            final Preferences root = pluginRoot.node( "classpath.helper" ); //$NON-NLS-1$
-            final Map<IPath,String> metadata = new HashMap<IPath,String>();
-            
-            final String[] keys;
-            
-            try
-            {
-                keys = root.childrenNames();
-            }
-            catch( BackingStoreException e )
-            {
-                throw new CoreException( FacetCorePlugin.createErrorStatus( e.getMessage(), e ) );
-            }
-            
-            for( String key : keys )
-            {
-                final Preferences node = root.node( key );
-                final String owners = node.get( "owners", null ); //$NON-NLS-1$
-                
-                if( owners != null )
-                {
-                    metadata.put( new Path( key.replaceAll( "::", "/" ) ), owners ); //$NON-NLS-1$ //$NON-NLS-2$
-                }
-            }
-            
-            if( ! metadata.isEmpty() )
-            {
-                final List<IClasspathEntry> cp = getProjectClasspath( project );
-                boolean cpchanged = false;
-                
-                for( ListIterator<IClasspathEntry> itr = cp.listIterator(); itr.hasNext(); )
-                {
-                    final IClasspathEntry cpe = itr.next();
-                    final String ownersString = metadata.get( cpe.getPath() );
-                    
-                    if( ownersString != null )
-                    {
-                        final Set<Object> owners = decodeOwnersString( ownersString );
-                        itr.set( setOwners( cpe, encodeOwnersString( owners ) ) );
-                        cpchanged = true;
-                    }
-                }
-                
-                if( cpchanged )
-                {
-                    setProjectClasspath( project, cp );
-                }
-            }
-            
-            legacyMetadataFile.delete( true, null );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/FacetCorePlugin.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/FacetCorePlugin.java
deleted file mode 100644
index 6d985c5..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/FacetCorePlugin.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 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.jst.common.project.facet.core.internal;
-
-import org.eclipse.core.runtime.ILog;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Plugin;
-import org.eclipse.core.runtime.Status;
-
-public final class FacetCorePlugin 
-
-    extends Plugin
-
-{
-    public static final String PLUGIN_ID = "org.eclipse.jst.common.project.facet.core"; //$NON-NLS-1$
-    public static final String OUTPUT_FOLDER = "outputFolder"; //$NON-NLS-1$
-    public static final String PROD_PROP_SOURCE_FOLDER_LEGACY = "defaultSource"; //$NON-NLS-1$    
-    private static final String PROD_PROP_SOURCE_FOLDER = "defaultJavaSourceFolder"; //$NON-NLS-1$
-    public static final String DEFAULT_SOURCE_FOLDER = "src"; //$NON-NLS-1$
-    public static final String DEFUALT_OUTPUT_FOLDER ="build/classes"; //$NON-NLS-1$
-    
-    private static FacetCorePlugin inst;
-
-    /**
-     * Get the plugin singleton.
-     */
-    
-    public static FacetCorePlugin getDefault() 
-    {
-        return inst;
-    }
-    
-    public FacetCorePlugin() {
-    	super();
-		if (inst == null)
-			inst = this;
-	}
-    public String getPluginID() 
-    {
-        return PLUGIN_ID;
-    }
-    
-    public static void log( final Exception e )
-    {
-        final ILog log = FacetCorePlugin.getDefault().getLog();
-        final String msg = "Encountered an unexpected exception."; //$NON-NLS-1$
-        
-        log.log( new Status( IStatus.ERROR, PLUGIN_ID, IStatus.OK, msg, e ) );
-    }
-    
-    public static IStatus createErrorStatus( final String msg )
-    {
-        return createErrorStatus( msg, null );
-    }
-
-    public static IStatus createErrorStatus( final String msg,
-                                             final Exception e )
-    {
-        return new Status( IStatus.ERROR, FacetCorePlugin.PLUGIN_ID, 0, msg, e );
-    }
-    
-    
-    
-    public static String getJavaSrcFolder(){
-    	String srcFolder = FacetCorePlugin.getDefault().getPluginPreferences().getString(PROD_PROP_SOURCE_FOLDER_LEGACY);
-    	if( srcFolder == null || srcFolder.equals("") ){ //$NON-NLS-1$
-    		if( Platform.getProduct() != null ){
-    			srcFolder = Platform.getProduct().getProperty( PROD_PROP_SOURCE_FOLDER );
-    		    if( srcFolder == null || srcFolder.equals("")){ //$NON-NLS-1$
-    		    	srcFolder = Platform.getProduct().getProperty( PROD_PROP_SOURCE_FOLDER_LEGACY );
-    		    }      			
-    		}
-	    	if( srcFolder == null || srcFolder.equals("") ){ //$NON-NLS-1$
-	    		srcFolder = DEFAULT_SOURCE_FOLDER;
-	    	}
-
-    	}
-	    return srcFolder;
-    }
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/FacetedProjectFrameworkJavaPlugin.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/FacetedProjectFrameworkJavaPlugin.java
deleted file mode 100644
index 645a923..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/FacetedProjectFrameworkJavaPlugin.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.internal;
-
-import org.eclipse.core.runtime.ILog;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.core.runtime.preferences.InstanceScope;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class FacetedProjectFrameworkJavaPlugin 
-{
-    public static final String PLUGIN_ID = "org.eclipse.jst.common.project.facet.core"; //$NON-NLS-1$
-    
-    private static final ILog platformLog
-        = Platform.getLog( Platform.getBundle( PLUGIN_ID ) );
-    
-    public static IEclipsePreferences getWorkspacePreferences()
-    {
-        final InstanceScope prefs = new InstanceScope();
-        return prefs.getNode( PLUGIN_ID );
-    }
-    
-    public static void log( final Exception e )
-    {
-        final String message = e.getMessage() + ""; //$NON-NLS-1$
-        log( createErrorStatus( message, e ) );
-    }
-
-    public static void log( final IStatus status )
-    {
-        platformLog.log( status );
-    }
-    
-    public static void logError( final String message )
-    {
-        log( createErrorStatus( message ) );
-    }
-    
-    public static IStatus createErrorStatus( final String message )
-    {
-        return createErrorStatus( message, null );
-    }
-
-    public static IStatus createErrorStatus( final Exception e )
-    {
-        return createErrorStatus( e.getMessage(), e );
-    }
-    
-    public static IStatus createErrorStatus( final String message,
-                                             final Exception e )
-    {
-        return new Status( IStatus.ERROR, PLUGIN_ID, -1, message, e )  ;      
-    }
-
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetDefaultVersionProvider.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetDefaultVersionProvider.java
deleted file mode 100644
index 5d3570c..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetDefaultVersionProvider.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.internal;
-
-import org.eclipse.wst.common.project.facet.core.IDefaultVersionProvider;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * Defaults the java facet version to align with workspace java compiler
- * level settings.
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class JavaFacetDefaultVersionProvider
-
-    implements IDefaultVersionProvider
-    
-{
-    public IProjectFacetVersion getDefaultVersion()
-    {
-        final String compilerLevel = JavaFacetUtil.getCompilerLevel();
-        return JavaFacetUtil.compilerLevelToFacet( compilerLevel );
-    }
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetDelegate.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetDelegate.java
deleted file mode 100644
index a53231c..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetDelegate.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.internal;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jst.common.project.facet.core.ClasspathHelper;
-import org.eclipse.wst.common.project.facet.core.FacetedProjectFrameworkException;
-import org.eclipse.wst.common.project.facet.core.IDelegate;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public abstract class JavaFacetDelegate 
-
-    implements IDelegate 
-    
-{
-    protected static final class RelevantFiles
-    {
-        public final IFile dotProjectFile;
-        public final IFile dotClasspathFile;
-        public final IFile jdtCorePrefsFile;
-        public final IFile jstFacetCorePrefsFile;
-        
-        public RelevantFiles( final IProject project )
-        {
-            this.dotProjectFile = project.getFile( IProjectDescription.DESCRIPTION_FILE_NAME );
-            this.dotClasspathFile = project.getFile( JavaFacetUtil.FILE_CLASSPATH );
-            this.jdtCorePrefsFile = project.getFile( JavaFacetUtil.FILE_JDT_CORE_PREFS );
-            this.jstFacetCorePrefsFile = project.getFile( ClasspathHelper.LEGACY_METADATA_FILE_NAME );
-        }
-    }
-    
-    protected static void validateEdit( final IProject project )
-    
-        throws CoreException
-        
-    {
-        validateEdit( new RelevantFiles( project ) );
-    }
-    
-    protected static void validateEdit( final RelevantFiles files )
-    
-        throws CoreException
-        
-    {
-        final List<IFile> list = new ArrayList<IFile>();
-        
-        list.add( files.dotProjectFile );
-        
-        if( files.dotClasspathFile.exists() )
-        {
-            list.add( files.dotClasspathFile );
-        }
-        
-        if( files.jdtCorePrefsFile.exists() )
-        {
-            list.add( files.jdtCorePrefsFile );
-        }
-        
-        if( files.jstFacetCorePrefsFile.exists() )
-        {
-            list.add( files.jstFacetCorePrefsFile );
-        }
-        
-        final IWorkspace ws = ResourcesPlugin.getWorkspace();
-        
-        final IStatus validateEditStatus 
-            = ws.validateEdit( list.toArray( new IFile[ list.size() ] ), IWorkspace.VALIDATE_PROMPT );
-        
-        if( validateEditStatus.getSeverity() == IStatus.ERROR )
-        {
-            final FacetedProjectFrameworkException e 
-                = new FacetedProjectFrameworkException( validateEditStatus );
-            
-            e.setExpected( true );
-            
-            throw e;
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetInstallConfigFactory.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetInstallConfigFactory.java
deleted file mode 100644
index ab76786..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetInstallConfigFactory.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.internal;
-
-import org.eclipse.jst.common.project.facet.core.JavaFacetInstallConfig;
-import org.eclipse.wst.common.project.facet.core.IActionConfigFactory;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class JavaFacetInstallConfigFactory
-
-    implements IActionConfigFactory
-    
-{
-    public Object create() 
-    {
-        return new JavaFacetInstallConfig();
-    }
-
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetInstallDelegate.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetInstallDelegate.java
deleted file mode 100644
index e13122c..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetInstallDelegate.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.internal;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdapterManager;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jst.common.project.facet.core.JavaFacetInstallConfig;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class JavaFacetInstallDelegate 
-
-    extends JavaFacetDelegate 
-    
-{
-    public void execute( final IProject project, 
-                         final IProjectFacetVersion fv, 
-                         final Object cfg, 
-                         final IProgressMonitor monitor ) 
-    
-        throws CoreException 
-        
-    {
-        validateEdit( project );
-        
-        final JavaFacetInstallConfig config = castToConfig( cfg );
-
-        // Create the source and the output directories.
-
-        IJavaProject jproject = null;
-        
-        if( project.exists() )
-        {
-            jproject = JavaCore.create( project );
-        }
-        
-        if( ! jproject.exists() )
-        {
-            final List<IClasspathEntry> cp = new ArrayList<IClasspathEntry>();
-            
-            for( IPath srcFolderPath : config.getSourceFolders() )
-            {
-                final IFolder folder = project.getFolder( srcFolderPath );
-                mkdirs( folder, false );
-                
-                cp.add( JavaCore.newSourceEntry( folder.getFullPath() ) );
-            }
-            
-            final IFolder defOutputFolder = project.getFolder( config.getDefaultOutputFolder() );
-            mkdirs( defOutputFolder, true );
-
-            // Add the java nature. This will automatically add the builder.
-
-            final IProjectDescription desc = project.getDescription();
-            final String[] current = desc.getNatureIds();
-            final String[] replacement = new String[ current.length + 1 ];
-            System.arraycopy( current, 0, replacement, 0, current.length );
-            replacement[ current.length ] = JavaCore.NATURE_ID;
-            desc.setNatureIds( replacement );
-            project.setDescription( desc, null );
-
-            // Setup the classpath.
-            
-            jproject.setRawClasspath( cp.toArray( new IClasspathEntry[ cp.size() ] ), 
-                                      defOutputFolder.getFullPath(), null );
-
-            JavaFacetUtil.resetClasspath( project, null, fv );
-            JavaFacetUtil.setCompilerLevel( project, fv );
-        }
-        else
-        {
-            // Set the compiler compliance level for the project. Ignore whether
-            // this might already be set so at the workspace level in case
-            // workspace settings change later or the project is included in a
-            // different workspace.
-            
-            String oldCompilerLevel = JavaFacetUtil.getCompilerLevel( project );
-            JavaFacetUtil.setCompilerLevel( project, fv );
-            
-            String newCompilerLevel = JavaFacetUtil.getCompilerLevel( project );
-            
-            // Schedule a full build of the project if the compiler level changed
-            // because we want classes in the project to be recompiled.
-            
-            if( newCompilerLevel != null && ! newCompilerLevel.equals( oldCompilerLevel ) )
-            {
-                JavaFacetUtil.scheduleFullBuild( project );
-            }
-        }
-    }
-    
-    private static JavaFacetInstallConfig castToConfig( final Object cfg )
-    {
-        if( cfg instanceof JavaFacetInstallConfig )
-        {
-            return (JavaFacetInstallConfig) cfg;
-        }
-        else
-        {
-            final IAdapterManager manager = Platform.getAdapterManager();
-            return (JavaFacetInstallConfig) manager.getAdapter( cfg, JavaFacetInstallConfig.class );
-        }
-    }
-    
-    private static void mkdirs( final IFolder folder,
-                                final boolean isDerived )
-    
-        throws CoreException
-        
-    {
-        if( ! folder.exists() )
-        {
-            final IContainer parent = folder.getParent();
-            
-            if( parent instanceof IFolder )
-            {
-                mkdirs( (IFolder) parent, isDerived );
-            }
-            
-            folder.create( true, true, null );
-            folder.setDerived( isDerived );
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetRuntimeChangedListener.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetRuntimeChangedListener.java
deleted file mode 100644
index 77c7278..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetRuntimeChangedListener.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.internal;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jst.common.project.facet.core.JavaFacet;
-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.events.IFacetedProjectEvent;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class JavaFacetRuntimeChangedListener 
-
-    implements IFacetedProjectListener
-    
-{
-    public void handleEvent( final IFacetedProjectEvent event )
-    {
-        final IFacetedProject fproj = event.getProject();
-        
-        if( fproj.hasProjectFacet( JavaFacet.FACET ) )
-        {
-            final IProjectFacetVersion fv = fproj.getInstalledVersion( JavaFacet.FACET );
-            
-            try
-            {
-                JavaFacetUtil.resetClasspath( fproj.getProject(), fv, fv );
-            }
-            catch( CoreException e )
-            {
-                FacetedProjectFrameworkJavaPlugin.log( e );
-            }
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetUninstallConfigFactory.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetUninstallConfigFactory.java
deleted file mode 100644
index 5736087..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetUninstallConfigFactory.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.internal;
-
-import org.eclipse.jst.common.project.facet.core.JavaFacetUninstallConfig;
-import org.eclipse.wst.common.project.facet.core.IActionConfigFactory;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class JavaFacetUninstallConfigFactory
-
-    implements IActionConfigFactory
-    
-{
-    public Object create() 
-    {
-        return new JavaFacetUninstallConfig();
-    }
-
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetUninstallDelegate.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetUninstallDelegate.java
deleted file mode 100644
index a5f200f..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetUninstallDelegate.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.internal;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class JavaFacetUninstallDelegate 
-
-    extends JavaFacetDelegate 
-    
-{
-    public void execute( final IProject project, 
-                         final IProjectFacetVersion fv, 
-                         final Object cfg, 
-                         final IProgressMonitor monitor ) 
-    
-        throws CoreException 
-        
-    {
-        final RelevantFiles files = new RelevantFiles( project );
-
-        validateEdit( files );
-        
-        // Find output directories. They will be removed later.
-        
-        final List<IPath> outputFolders = new ArrayList<IPath>();
-        
-        try
-        {
-            final IJavaProject jproj = JavaCore.create( project );
-            
-            outputFolders.add( jproj.getOutputLocation() );
-            
-            for( IClasspathEntry cpe : jproj.getRawClasspath() )
-            {
-                outputFolders.add( cpe.getOutputLocation() );
-            }
-        }
-        catch( Exception e )
-        {
-            // Ignore the exception since we tearing down and the user might be doing this
-            // because the project is corrupted.
-        }
-        
-        // Remove java nature. This will automatically remove the builder.
-
-        final IProjectDescription desc = project.getDescription();
-        final List<String> natures = new ArrayList<String>();
-        
-        for( String nature : desc.getNatureIds() )
-        {
-            if( ! nature.equals( JavaCore.NATURE_ID ) )
-            {
-                natures.add( nature );
-            }
-        }
-        
-        desc.setNatureIds( natures.toArray( new String[ natures.size() ] ) );
-        project.setDescription( desc, null );
-
-        // Delete various metadata files.
-        
-        files.dotClasspathFile.delete( true, null );
-        files.jdtCorePrefsFile.delete( true, null );
-        files.jstFacetCorePrefsFile.delete( true, null );
-        
-        // Delete all the output folders and their contents.
-        
-        final IWorkspace ws = ResourcesPlugin.getWorkspace();
-        
-        for( IPath path : outputFolders )
-        {
-            if( path != null )
-            {
-                delete( ws.getRoot().getFolder( path ) );
-            }
-        }
-    }
-    
-    private static final void delete( final IFolder folder )
-    
-        throws CoreException
-        
-    {
-        final IContainer parent = folder.getParent();
-        
-        if( parent instanceof IFolder &&
-            parent.members( IContainer.INCLUDE_HIDDEN | IContainer.INCLUDE_PHANTOMS | 
-                            IContainer.INCLUDE_TEAM_PRIVATE_MEMBERS ).length == 1 )
-        {
-            delete( (IFolder) parent );
-        }
-        else
-        {
-            if( folder.exists() )
-            {
-                folder.delete( true, null );
-            }
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetUtil.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetUtil.java
deleted file mode 100644
index 2a6134d..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetUtil.java
+++ /dev/null
@@ -1,318 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.internal;
-
-import java.util.Collections;
-import java.util.Hashtable;
-import java.util.List;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.resources.ProjectScope;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.core.runtime.preferences.IScopeContext;
-import org.eclipse.core.runtime.preferences.InstanceScope;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.internal.core.JavaProject;
-import org.eclipse.jdt.launching.IVMInstall;
-import org.eclipse.jdt.launching.JavaRuntime;
-import org.eclipse.jst.common.project.facet.core.ClasspathHelper;
-import org.eclipse.jst.common.project.facet.core.JavaFacet;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.osgi.service.prefs.BackingStoreException;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class JavaFacetUtil
-{
-    public static final String FILE_CLASSPATH = JavaProject.CLASSPATH_FILENAME;
-    public static final String FILE_JDT_CORE_PREFS = ".settings/org.eclipse.jdt.core.prefs"; //$NON-NLS-1$
-    
-    public static String getCompilerLevel()
-    {
-        final IScopeContext context = new InstanceScope();
-        final IEclipsePreferences prefs = context.getNode( JavaCore.PLUGIN_ID );
-        String level = prefs.get( JavaCore.COMPILER_COMPLIANCE, null );
-        
-        if( level == null )
-        {
-            final Hashtable defaults = JavaCore.getDefaultOptions();
-            level = (String) defaults.get( JavaCore.COMPILER_COMPLIANCE );
-        }
-        
-        return level;
-    }
-
-    public static String getCompilerLevel( final IProject project )
-    {
-        final IScopeContext context = new ProjectScope( project );
-        final IEclipsePreferences prefs = context.getNode( JavaCore.PLUGIN_ID );
-        String level = prefs.get( JavaCore.COMPILER_COMPLIANCE, null );
-        
-        if( level == null )
-        {
-            level = getCompilerLevel();
-        }
-        
-        return level;
-    }
-    
-    public static void setCompilerLevel( final IProject project,
-                                         final IProjectFacetVersion fv )
-    
-        throws CoreException
-        
-    {
-        setCompilerLevel( project, facetToCompilerLevel( fv ) );
-    }
-
-    public static void setCompilerLevel( final IProject project,
-                                         final String level )
-    
-        throws CoreException
-        
-    {
-        final IScopeContext context = new ProjectScope( project );
-        
-        final IEclipsePreferences prefs 
-            = context.getNode( JavaCore.PLUGIN_ID );
-        
-        if( level.equals( JavaCore.VERSION_1_3 ) )
-        {
-            prefs.put( JavaCore.COMPILER_COMPLIANCE, JavaCore.VERSION_1_3 );
-            prefs.put( JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM, JavaCore.VERSION_1_1 );
-            prefs.put( JavaCore.COMPILER_SOURCE, JavaCore.VERSION_1_3 );
-            prefs.put( JavaCore.COMPILER_PB_ASSERT_IDENTIFIER, JavaCore.IGNORE );
-            prefs.put( JavaCore.COMPILER_PB_ENUM_IDENTIFIER, JavaCore.IGNORE );
-        }
-        else if( level.equals( JavaCore.VERSION_1_4 ) )
-        {
-            prefs.put( JavaCore.COMPILER_COMPLIANCE, JavaCore.VERSION_1_4 );
-            prefs.put( JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM, JavaCore.VERSION_1_2 );
-            prefs.put( JavaCore.COMPILER_SOURCE, JavaCore.VERSION_1_3 );
-            prefs.put( JavaCore.COMPILER_PB_ASSERT_IDENTIFIER, JavaCore.WARNING );
-            prefs.put( JavaCore.COMPILER_PB_ENUM_IDENTIFIER, JavaCore.WARNING );
-        }
-        else if( level.equals( JavaCore.VERSION_1_5 ) )
-        {
-            prefs.put( JavaCore.COMPILER_COMPLIANCE, JavaCore.VERSION_1_5 );
-            prefs.put( JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM, JavaCore.VERSION_1_5 );
-            prefs.put( JavaCore.COMPILER_SOURCE, JavaCore.VERSION_1_5 );
-            prefs.put( JavaCore.COMPILER_PB_ASSERT_IDENTIFIER, JavaCore.ERROR );
-            prefs.put( JavaCore.COMPILER_PB_ENUM_IDENTIFIER, JavaCore.ERROR );
-        }
-        else if( level.equals( JavaCore.VERSION_1_6 ) )
-        {
-            prefs.put( JavaCore.COMPILER_COMPLIANCE, JavaCore.VERSION_1_6 );
-            prefs.put( JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM, JavaCore.VERSION_1_6 );
-            prefs.put( JavaCore.COMPILER_SOURCE, JavaCore.VERSION_1_6 );
-            prefs.put( JavaCore.COMPILER_PB_ASSERT_IDENTIFIER, JavaCore.ERROR );
-            prefs.put( JavaCore.COMPILER_PB_ENUM_IDENTIFIER, JavaCore.ERROR );
-        }
-        else
-        {
-            throw new IllegalStateException();
-        }
-
-        try
-        {
-            prefs.flush();
-        }
-        catch( BackingStoreException e )
-        {
-            // TODO: Handle this.
-        }
-    }
-    
-    public static void scheduleFullBuild( final IProject project )
-    {
-        // This code is modeled after the code in 
-        // org.eclipse.jdt.internal.ui.util.CoreUtility.getBuildJob() method.
-        
-        final IWorkspace ws = ResourcesPlugin.getWorkspace();
-        
-        final String msg 
-            = NLS.bind( Resources.buildingMsg, project.getName() );
-        
-        final Job buildJob = new Job( msg ) 
-        {
-            public IStatus run( final IProgressMonitor monitor ) 
-            {
-                monitor.beginTask( msg, 2 );
-                
-                try
-                {
-                    project.build( IncrementalProjectBuilder.FULL_BUILD,
-                                   new SubProgressMonitor( monitor, 1 ) );
-                    
-                    ws.build( IncrementalProjectBuilder.INCREMENTAL_BUILD, 
-                              new SubProgressMonitor( monitor, 1 ) );
-                    
-                }
-                catch( CoreException e )
-                {
-                    return e.getStatus();
-                }
-                finally
-                {
-                    monitor.done();
-                }
-                
-                return Status.OK_STATUS;
-            }
-            
-            public boolean belongsTo( final Object family ) 
-            {
-                return family == ResourcesPlugin.FAMILY_MANUAL_BUILD;
-            }
-        };
-         
-        buildJob.setRule( ws.getRuleFactory().buildRule() );
-        buildJob.schedule();
-    }
-    
-    public static void resetClasspath( final IProject project,
-                                       final IProjectFacetVersion oldver,
-                                       final IProjectFacetVersion newver )
-    
-        throws CoreException
-        
-    {
-        if( oldver != null )
-        {
-            ClasspathHelper.removeClasspathEntries( project, oldver );
-        }
-        
-        // If this was a java project before it became a faceted project or
-        // the JRE container has been added manually, the above method will not
-        // delete the old JRE container. Do it manually.
-        
-        removeJreContainer( project );
-        
-        if( ! ClasspathHelper.addClasspathEntries( project, newver ) ) 
-        {
-            final IVMInstall vm = JavaRuntime.getDefaultVMInstall();
-            
-            if( vm != null )
-            {
-                IPath path = new Path( JavaRuntime.JRE_CONTAINER );
-                path = path.append( vm.getVMInstallType().getId() );
-                path = path.append( vm.getName() );
-                
-                final IClasspathEntry cpe 
-                    = JavaCore.newContainerEntry( path );
-                
-                final List entries = Collections.singletonList( cpe );
-                
-                ClasspathHelper.addClasspathEntries( project, newver, entries );
-            }
-        }
-    }
-    
-    private static void removeJreContainer( final IProject proj ) 
-    
-        throws CoreException
-        
-    {
-        final IJavaProject jproj = JavaCore.create( proj );
-        final IClasspathEntry[] cp = jproj.getRawClasspath();
-        
-        int pos = -1;
-        
-        for( int i = 0; i < cp.length; i++ )
-        {
-            final IClasspathEntry cpe = cp[ i ];
-            
-            if( cpe.getEntryKind() == IClasspathEntry.CPE_CONTAINER &&
-                cpe.getPath().segment( 0 ).equals( JavaRuntime.JRE_CONTAINER ) )
-            {
-                pos = i;
-                break;
-            }
-        }
-            
-        if( pos == -1 )
-        {
-            return;
-        }
-        
-        final IClasspathEntry[] newcp 
-            = new IClasspathEntry[ cp.length - 1 ];
-        
-        System.arraycopy( cp, 0, newcp, 0, pos );
-        System.arraycopy( cp, pos + 1, newcp, pos, newcp.length - pos );
-        
-        jproj.setRawClasspath( newcp, null );
-    }
-    
-    public static IProjectFacetVersion compilerLevelToFacet( final String ver )
-    {
-        if( ver.equals( "1.5" ) ) //$NON-NLS-1$
-        {
-            return JavaFacet.JAVA_50;
-        }
-        else if( ver.equals(  "1.6" ) ) //$NON-NLS-1$
-        {
-            return JavaFacet.JAVA_60;
-        }
-        else
-        {
-            return JavaFacet.FACET.getVersion( ver );
-        }
-    }
-
-    public static String facetToCompilerLevel( final IProjectFacetVersion fv )
-    {
-        if( fv == JavaFacet.JAVA_50 )
-        {
-            return JavaCore.VERSION_1_5;
-        }
-        else if( fv == JavaFacet.JAVA_60 )
-        {
-            return JavaCore.VERSION_1_6;
-        }
-        else
-        {
-            return fv.getVersionString();
-        }
-    }
-    
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String buildingMsg;
-        
-        static
-        {
-            initializeMessages( JavaFacetUtil.class.getName(), 
-                                Resources.class );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetUtil.properties b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetUtil.properties
deleted file mode 100644
index b8e00de..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetUtil.properties
+++ /dev/null
@@ -1 +0,0 @@
-buildingMsg = Building Project {0}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetValidator.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetValidator.java
deleted file mode 100644
index 911c706..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetValidator.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.internal;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jst.common.project.facet.core.JavaFacet;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectValidator;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class JavaFacetValidator
-
-    implements IFacetedProjectValidator
-    
-{
-    public static final String MARKER_ID
-        = "org.eclipse.jst.common.project.facet.core.javaVersionMismatch"; //$NON-NLS-1$
-    
-    public static final String ATTR_FACET_VERSION = "facetVersion"; //$NON-NLS-1$
-    public static final String ATTR_COMPILER_LEVEL = "compilerLevel"; //$NON-NLS-1$
-
-    public void validate( final IFacetedProject fproj ) 
-    
-        throws CoreException
-        
-    {
-        final String level 
-            = JavaFacetUtil.getCompilerLevel( fproj.getProject() );
-        
-        final IProjectFacetVersion fv = fproj.getInstalledVersion( JavaFacet.FACET );
-        
-        if( JavaFacetUtil.compilerLevelToFacet( level ) != fv )
-        {
-            final IMarker marker
-                = fproj.createErrorMarker( MARKER_ID, Resources.versionsDontMatch );
-            
-            marker.setAttribute( ATTR_FACET_VERSION, fv.getVersionString() );
-            marker.setAttribute( ATTR_COMPILER_LEVEL, level );
-        }
-    }
-    
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String versionsDontMatch;
-        
-        static
-        {
-            initializeMessages( JavaFacetValidator.class.getName(), 
-                                Resources.class );
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetValidator.properties b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetValidator.properties
deleted file mode 100644
index 7c1e870..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetValidator.properties
+++ /dev/null
@@ -1 +0,0 @@
-versionsDontMatch = Java compiler level does not match the version of the installed Java project facet.
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetVersionChangeConfigFactory.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetVersionChangeConfigFactory.java
deleted file mode 100644
index ffbf4e1..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetVersionChangeConfigFactory.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.internal;
-
-import org.eclipse.jst.common.project.facet.core.JavaFacetVersionChangeConfig;
-import org.eclipse.wst.common.project.facet.core.IActionConfigFactory;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class JavaFacetVersionChangeConfigFactory
-
-    implements IActionConfigFactory
-    
-{
-    public Object create() 
-    {
-        return new JavaFacetVersionChangeConfig();
-    }
-
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetVersionChangeDelegate.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetVersionChangeDelegate.java
deleted file mode 100644
index 212a200..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaFacetVersionChangeDelegate.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.internal;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.common.project.facet.core.IDelegate;
-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;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class JavaFacetVersionChangeDelegate 
-
-    implements IDelegate
-    
-{
-    public void execute( final IProject project, 
-                         final IProjectFacetVersion fv,
-                         final Object cfg,
-                         final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        if( monitor != null )
-        {
-            monitor.beginTask( "", 1 ); //$NON-NLS-1$
-        }
-        
-        try
-        {
-            // Find the version that's currently installed.
-            
-            final IFacetedProject fproj
-                = ProjectFacetsManager.create( project );
-
-            final IProjectFacetVersion oldver
-                = fproj.getInstalledVersion( fv.getProjectFacet() );
-            
-            // Reset the classpath. 
-            
-            JavaFacetUtil.resetClasspath( project, oldver, fv );
-            
-            // Reset the compiler level.
-            
-            JavaFacetUtil.setCompilerLevel( project, fv );
-            
-            // Schedule a full build of the project.
-            
-            JavaFacetUtil.scheduleFullBuild( project );
-            
-            if( monitor != null )
-            {
-                monitor.worked( 1 );
-            }
-        }
-        finally
-        {
-            if( monitor != null )
-            {
-                monitor.done();
-            }
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaRuntimeBridge.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaRuntimeBridge.java
deleted file mode 100644
index 78be560..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaRuntimeBridge.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.internal;
-
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jdt.launching.IVMInstall;
-import org.eclipse.jdt.launching.IVMInstallType;
-import org.eclipse.jdt.launching.JavaRuntime;
-import org.eclipse.jst.common.project.facet.core.StandardJreRuntimeComponent;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeBridge;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponent;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class JavaRuntimeBridge
-
-    implements IRuntimeBridge
-    
-{
-    public Set<String> getExportedRuntimeNames() throws CoreException
-    {
-        final Set<String> result = new HashSet<String>();
-        
-        for( IVMInstallType vmInstallType : JavaRuntime.getVMInstallTypes() )
-        {
-            for( IVMInstall vmInstall : vmInstallType.getVMInstalls() )
-            {
-                result.add( vmInstall.getName() );
-            }
-        }
-
-        return result;
-    }
-
-    
-    public IStub bridge( final String name ) throws CoreException
-    {
-        IVMInstall vmInstall = null;
-        
-        for( IVMInstallType vmInstallType : JavaRuntime.getVMInstallTypes() )
-        {
-            vmInstall = vmInstallType.findVMInstallByName( name );
-            
-            if( vmInstall != null )
-            {
-                break;
-            }
-        }
-        
-        return new Stub( vmInstall );
-    }
-
-    private static class Stub
-    
-        extends IRuntimeBridge.Stub
-        
-    {
-        private final IVMInstall vmInstall;
-
-        public Stub( final IVMInstall vmInstall )
-        {
-            this.vmInstall = vmInstall;
-        }
-
-        public List<IRuntimeComponent> getRuntimeComponents()
-        {
-            final IRuntimeComponent rc = StandardJreRuntimeComponent.create( this.vmInstall );
-            return Collections.singletonList( rc );
-        }
-
-        public Map<String,String> getProperties()
-        {
-            return Collections.emptyMap();
-        }
-    }
-    
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/RuntimeClasspathProvider.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/RuntimeClasspathProvider.java
deleted file mode 100644
index 2177e52..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/RuntimeClasspathProvider.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.internal;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.jst.common.project.facet.core.IClasspathProvider;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponent;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class RuntimeClasspathProvider
-
-    implements IClasspathProvider
-    
-{
-    private final IRuntime r;
-    
-    public RuntimeClasspathProvider( final IRuntime r )
-    {
-        this.r = r;
-    }
-
-    public List getClasspathEntries( final IProjectFacetVersion fv )
-    {
-        for( Iterator itr = this.r.getRuntimeComponents().iterator(); 
-             itr.hasNext(); )
-        {
-            final IRuntimeComponent rc = (IRuntimeComponent) itr.next();
-            
-            final IClasspathProvider cpprov 
-                = (IClasspathProvider) rc.getAdapter( IClasspathProvider.class );
-            
-            if( cpprov != null )
-            {
-                final List cp = cpprov.getClasspathEntries( fv );
-                
-                if( cp != null )
-                {
-                    return cp;
-                }
-            }
-        }
-        
-        return null;
-    }
-    
-    public static final class Factory
-    
-        implements IAdapterFactory
-        
-    {
-        private static final Class[] ADAPTER_TYPES = { IClasspathProvider.class };
-        
-        public Object getAdapter( final Object adaptable, 
-                                  final Class adapterType )
-        {
-            if( adapterType == IClasspathProvider.class )
-            {
-                return new RuntimeClasspathProvider( (IRuntime) adaptable );
-            }
-            else
-            {
-                return null;
-            }
-        }
-
-        public Class[] getAdapterList()
-        {
-            return ADAPTER_TYPES;
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/StandardJreClasspathProvider.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/StandardJreClasspathProvider.java
deleted file mode 100644
index 4d0ed8d..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/StandardJreClasspathProvider.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.internal;
-
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.launching.IVMInstall;
-import org.eclipse.jdt.launching.IVMInstallType;
-import org.eclipse.jdt.launching.JavaRuntime;
-import org.eclipse.jst.common.project.facet.core.IClasspathProvider;
-import org.eclipse.jst.common.project.facet.core.JavaFacet;
-import org.eclipse.jst.common.project.facet.core.StandardJreRuntimeComponent;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponent;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class StandardJreClasspathProvider 
-
-    implements IClasspathProvider 
-    
-{
-	private IRuntimeComponent rc;
-
-	public StandardJreClasspathProvider( final IRuntimeComponent rc ) 
-	{
-		this.rc = rc;
-	}
-
-	public List<IClasspathEntry> getClasspathEntries( final IProjectFacetVersion fv ) 
-	{
-		if( fv.getProjectFacet() == JavaFacet.FACET ) 
-		{
-		    final IVMInstall vmInstall = getVMInstall();
-		    
-		    if( vmInstall != null )
-		    {
-		        final IPath cpEntryPath = JavaRuntime.newJREContainerPath( vmInstall );
-		        final IClasspathEntry cpEntry = JavaCore.newContainerEntry( cpEntryPath );
-		        
-		        return Collections.singletonList( cpEntry );
-		    }
-		}
-		
-		return null;
-	}
-	
-	private IVMInstall getVMInstall()
-	{
-	    final String vmInstallTypeId 
-	        = this.rc.getProperty( StandardJreRuntimeComponent.PROP_VM_INSTALL_TYPE );
-	    
-	    final String vmInstallId
-	        = this.rc.getProperty( StandardJreRuntimeComponent.PROP_VM_INSTALL_ID );
-	    
-	    if( vmInstallTypeId == null || vmInstallId == null )
-	    {
-	        return null;
-	    }
-	    
-	    final IVMInstallType vmInstallType = JavaRuntime.getVMInstallType( vmInstallTypeId );
-	    
-	    if( vmInstallType == null )
-	    {
-	        return null;
-	    }
-	    
-	    return vmInstallType.findVMInstall( vmInstallId );
-	}
-
-	public static final class Factory
-	
-	    implements IAdapterFactory 
-	
-	{
-		private static final Class[] ADAPTER_TYPES = { IClasspathProvider.class };
-
-		public Class[] getAdapterList() 
-		{
-            return ADAPTER_TYPES;
-        }
-
-		public Object getAdapter( final Object adaptable, 
-		                          final Class adapterType ) 
-		{
-			IRuntimeComponent rc = (IRuntimeComponent) adaptable;
-			return new StandardJreClasspathProvider(rc);
-		}
-	}
-	
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/EnablementExpressionContext.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/EnablementExpressionContext.java
deleted file mode 100644
index 5abd305..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/EnablementExpressionContext.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.libprov;
-
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectBase;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * Contains all of the information available in the context of library provider enablement
- * expression. Useful for writing custom property testers.
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- * @since 1.4
- */
-
-public final class EnablementExpressionContext
-{
-    private final IFacetedProjectBase fproj;
-    private final IProjectFacetVersion fv;
-    private final ILibraryProvider provider;
-    
-    public EnablementExpressionContext( final IFacetedProjectBase fproj,
-                                        final IProjectFacetVersion fv,
-                                        final ILibraryProvider provider )
-    {
-        this.fproj = fproj;
-        this.fv = fv;
-        this.provider = provider;
-    }
-    
-    public IFacetedProjectBase getFacetedProject()
-    {
-        return this.fproj;
-    }
-    
-    public IProjectFacet getRequestingProjectFacet()
-    {
-        return this.fv.getProjectFacet();
-    }
-    
-    public IProjectFacetVersion getRequestingProjectFacetVersion()
-    {
-        return this.fv;
-    }
-    
-    public ILibraryProvider getLibraryProvider()
-    {
-        return this.provider;
-    }
-
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/ILibraryProvider.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/ILibraryProvider.java
deleted file mode 100644
index 05d5ee6..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/ILibraryProvider.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.libprov;
-
-import java.util.Map;
-
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectBase;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * Represents a single library provider as declared to the framework.
- * 
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- * @since 1.4
- */
-
-public interface ILibraryProvider
-
-    extends Comparable<ILibraryProvider>
-    
-{
-    /**
-     * Returns the id of the library provider. Each library provider must have a unique id.
-     * 
-     * @return the id of the library provider
-     */
-    
-    String getId();
-    
-    /**
-     * Returns the id of the plugin that declares this library provider.
-     * 
-     * @return the id of the plugin that declares this library provider
-     */
-    
-    String getPluginId();
-    
-    /**
-     * Returns the library provider label. This is the text that will be presented to the user
-     * when referencing this library provider. The user never sees the library provider id. The
-     * label can be translated.
-     * 
-     * @return the library provider label
-     */
-    
-    String getLabel();
-    
-    /**
-     * Returns the library provider that this provider extends or <code>null</code> if this
-     * library provider doesn't extend anything.
-     * 
-     * @return the library provider that this provider extends or <code>null</code>
-     */
-    
-    ILibraryProvider getBaseProvider();
-    
-    /**
-     * Returns the root library provider in the extension chain. If this library provider does
-     * not extend another, this method call will return this provider.
-     * 
-     * @return the root library provider in the extension chain
-     */
-    
-    ILibraryProvider getRootProvider();
-    
-    /**
-     * Indicates whether this library provider is only meant to be used as a base for other
-     * providers and not to be used directly.
-     * 
-     * @return <code>true</code> if this library provider is only meant to be used as a base
-     *   for other providers
-     */
-    
-    boolean isAbstract();
-    
-    /**
-     * Indicates whether this library provider is meant to be hidden from the user. This
-     * typically means that it cannot be installed.
-     * 
-     * @return <code>true</code> if this library provider is meant to be hidden from the user
-     */
-    
-    boolean isHidden();
-    
-    /**
-     * Returns the priority number of this library provider. Each library provider can be assigned
-     * a priority number that is used when sorting applicable providers in order to present
-     * providers to the user. Higher priority numbers are sorted first. The provider with the
-     * highest priority in the set of applicable providers is one that is selected by default.
-     * 
-     * @return the priority number of this library provider
-     */
-    
-    int getPriority();
-    
-    /**
-     * Checks whether this provider is enabled for the given context.
-     * 
-     * @param fpjwc the faceted project (or working copy)
-     * @param fv the project facet that is making the request for libraries
-     * @return <code>true</code> if this provider is enabled for the given context
-     */
-    
-    boolean isEnabledFor( IFacetedProjectBase fproj, 
-                          IProjectFacetVersion fv );
-    
-    /**
-     * Checks whether this provider is enabled for the given context.
-     * 
-     * @param fpjwc the faceted project (or working copy)
-     * @param fv the project facet that is making the request for libraries
-     * @param customVariables custom variables to add to the enablement expressions
-     *   evaluation context
-     * @return <code>true</code> if this provider is enabled for the given context
-     */
-    
-    boolean isEnabledFor( IFacetedProjectBase fproj, 
-                          IProjectFacetVersion fv,
-                          Map<String,Object> customVariables );
-    
-    /**
-     * Determines whether this provider supports the specified action type.
-     * 
-     * @param type the action type to check
-     * @return <code>true</code> if this provider supports the specified action type
-     */
-    
-    boolean isActionSupported( LibraryProviderActionType type );
-    
-    /**
-     * Returns the parameters associated with this library provider at declaration time. The
-     * list of parameters and their meaning is specific to the implementation of this library
-     * provider.
-     * 
-     * @return the parameters associated with this library provider at declaration time.
-     */
-    
-    Map<String,String> getParams();
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/IPropertyChangeListener.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/IPropertyChangeListener.java
deleted file mode 100644
index 3504ff4..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/IPropertyChangeListener.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.libprov;
-
-/**
- * The common interface that's used throughout the Library Provider Framework to implement
- * listeners.
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- * @since 1.4
- */
-
-public interface IPropertyChangeListener
-{
-    /**
-     * Called when property is changed.
-     * 
-     * @param property the name of the property
-     * @param oldValue the old value
-     * @param newValue the new value
-     */
-    
-    void propertyChanged( String property,
-                          Object oldValue,
-                          Object newValue );
-}
-
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/LegacyLibraryProviderDetector.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/LegacyLibraryProviderDetector.java
deleted file mode 100644
index 24ca9bb..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/LegacyLibraryProviderDetector.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.libprov;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-
-/**
- * This class should be subclassed to provide detection of legacy library providers in the project.
- * It is used together with the org.eclipse.jst.common.project.facet.core.legacyLibraryProviderDetectors
- * extension point when migrating an existing facet to use the Library Provider Framework.
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- * @since 1.4
- */
-
-public abstract class LegacyLibraryProviderDetector
-{
-    /**
-     * Attempts to detect the presence of the legacy library provider in the project.
-     * 
-     * @param project the project in question
-     * @param facet the facet that is making the request for libraries
-     * @return the legacy library provider or <code>null</code> if not detected
-     */
-    
-    public abstract ILibraryProvider detect( final IProject project,
-                                             final IProjectFacet facet );
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/LibraryFacetInstallConfig.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/LibraryFacetInstallConfig.java
deleted file mode 100644
index dee6a42..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/LibraryFacetInstallConfig.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.libprov;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.wst.common.project.facet.core.ActionConfig;
-import org.eclipse.wst.common.project.facet.core.IActionConfigFactory;
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectWorkingCopy;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * @author <a href="konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- * @since 1.4
- */
-
-public class LibraryFacetInstallConfig
-
-    extends ActionConfig
-    
-{
-    private LibraryInstallDelegate libraryInstallDelegate = null;
-
-    public final LibraryInstallDelegate getLibraryInstallDelegate()
-    {
-        return this.libraryInstallDelegate;
-    }
-    
-    @Override
-    public void setFacetedProjectWorkingCopy( final IFacetedProjectWorkingCopy fpjwc )
-    {
-        super.setFacetedProjectWorkingCopy( fpjwc );
-        init();
-    }
-
-    @Override
-    public void setProjectFacetVersion( final IProjectFacetVersion fv )
-    {
-        super.setProjectFacetVersion( fv );
-        
-        final boolean initialized = init();
-        
-        if( this.libraryInstallDelegate != null && ! initialized )
-        {
-            this.libraryInstallDelegate.setProjectFacetVersion( fv );
-        }
-    }
-    
-    @Override
-    public IStatus validate() 
-    {
-        if( this.libraryInstallDelegate != null )
-        {
-            return this.libraryInstallDelegate.validate();
-        }
-        else
-        {
-            return Status.OK_STATUS;
-        }
-    }
-
-    private boolean init()
-    {
-        final IFacetedProjectWorkingCopy fpjwc = getFacetedProjectWorkingCopy();
-        final IProjectFacetVersion fv = getProjectFacetVersion();
-        
-        if( this.libraryInstallDelegate == null && fpjwc != null && fv != null )
-        {
-            this.libraryInstallDelegate = new LibraryInstallDelegate( fpjwc, fv );
-            return true;
-        }
-        
-        return false;
-    }
-    
-    @Override
-	public void dispose() 
-    {
-    	if( this.libraryInstallDelegate != null )
-    	{
-    		this.libraryInstallDelegate.dispose();
-    	}
-	}
-
-	public static final class Factory
-        
-        implements IActionConfigFactory
-        
-    {
-        public Object create()
-        {
-            return new LibraryFacetInstallConfig();
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/LibraryFacetUninstallConfig.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/LibraryFacetUninstallConfig.java
deleted file mode 100644
index c4e38b5..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/LibraryFacetUninstallConfig.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.libprov;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.wst.common.project.facet.core.ActionConfig;
-import org.eclipse.wst.common.project.facet.core.IActionConfigFactory;
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectWorkingCopy;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * @author <a href="konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- * @since 1.4
- */
-
-public class LibraryFacetUninstallConfig
-
-    extends ActionConfig
-    
-{
-    private LibraryUninstallDelegate libraryUninstallDelegate = null;
-
-    public final LibraryUninstallDelegate getLibraryUninstallDelegate()
-    {
-        return this.libraryUninstallDelegate;
-    }
-    
-    @Override
-    public void setFacetedProjectWorkingCopy( final IFacetedProjectWorkingCopy fpjwc )
-    {
-        super.setFacetedProjectWorkingCopy( fpjwc );
-        init();
-    }
-
-    @Override
-    public void setProjectFacetVersion( final IProjectFacetVersion fv )
-    {
-        super.setProjectFacetVersion( fv );
-        init();
-    }
-    
-    @Override
-    public IStatus validate() 
-    {
-        if( this.libraryUninstallDelegate != null )
-        {
-            return this.libraryUninstallDelegate.validate();
-        }
-        else
-        {
-            return Status.OK_STATUS;
-        }
-    }
-
-    private void init()
-    {
-        final IFacetedProjectWorkingCopy fpjwc = getFacetedProjectWorkingCopy();
-        final IProjectFacetVersion fv = getProjectFacetVersion();
-        
-        if( fpjwc != null && fv != null )
-        {
-            this.libraryUninstallDelegate = new LibraryUninstallDelegate( fpjwc, fv );
-        }
-    }
-    
-    @Override
-    public void dispose()
-    {
-    	if( this.libraryUninstallDelegate != null )
-    	{
-    		this.libraryUninstallDelegate.dispose();
-    	}
-    }
-    
-    public static final class Factory
-    
-        implements IActionConfigFactory
-        
-    {
-        public Object create()
-        {
-            return new LibraryFacetUninstallConfig();
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/LibraryInstallDelegate.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/LibraryInstallDelegate.java
deleted file mode 100644
index ebda03e..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/LibraryInstallDelegate.java
+++ /dev/null
@@ -1,643 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.libprov;
-
-import static org.eclipse.jst.common.project.facet.core.internal.FacetedProjectFrameworkJavaPlugin.createErrorStatus;
-import static org.eclipse.jst.common.project.facet.core.internal.FacetedProjectFrameworkJavaPlugin.log;
-import static org.eclipse.wst.common.project.facet.core.util.internal.ProgressMonitorUtil.beginTask;
-import static org.eclipse.wst.common.project.facet.core.util.internal.ProgressMonitorUtil.done;
-import static org.eclipse.wst.common.project.facet.core.util.internal.ProgressMonitorUtil.submon;
-import static org.eclipse.wst.common.project.facet.core.util.internal.ProgressMonitorUtil.worked;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jst.common.project.facet.core.libprov.internal.LibraryProvider;
-import org.eclipse.jst.common.project.facet.core.libprov.internal.LibraryProviderFrameworkImpl;
-import org.eclipse.jst.common.project.facet.core.libprov.internal.PropertiesHost;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectBase;
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectWorkingCopy;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectEvent;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener;
-import org.eclipse.wst.common.project.facet.core.util.internal.CollectionsUtil;
-import org.eclipse.wst.common.project.facet.core.util.internal.MiscUtil;
-
-/**
- * Used for configuring and then installing a library via the Library Provider Framework.
- * Instance of this class would typically be embedded in facet action config objects and then
- * executed during the execution of those actions. Can also be used stand-alone when it is
- * necessary to change libraries outside facet lifecycle actions.
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- * @since 1.4
- */
-
-public final class LibraryInstallDelegate
-
-    extends PropertiesHost
-    
-{
-    private static final String CLASS_NAME = LibraryInstallDelegate.class.getName();
-    
-    /**
-     * The property corresponding to the list of available providers.
-     */
-    
-    public static final String PROP_AVAILABLE_PROVIDERS 
-        = CLASS_NAME + ".AVAILABLE_PROVIDERS"; //$NON-NLS-1$
-    
-    /**
-     * The property corresponding to the currently-selected provider.
-     */
-    
-    public static final String PROP_SELECTED_PROVIDER 
-        = CLASS_NAME + ".SELECTED_PROVIDER"; //$NON-NLS-1$
-    
-    private final IFacetedProjectBase fproj;
-    private IProjectFacetVersion fv;
-    private List<ILibraryProvider> providers;
-    private List<ILibraryProvider> providersReadOnly;
-    private ILibraryProvider selectedProvider;
-    private boolean isDefaultSelection;
-    private final Map<ILibraryProvider,LibraryProviderOperationConfig> configs;
-    private final IPropertyChangeListener providerConfigListener;
-    private LibraryUninstallDelegate uninstallDelegate = null;
-    private Map<String,Object> customEnablementContextVariables;
-    private final IFacetedProjectListener facetedProjectListener;
-    
-    /**
-     * Constructs a new library install delegate. 
-     * 
-     * @param fproj the faceted project (or a working copy)
-     * @param fv the project facet that is requesting libraries
-     * @param customEnablementContextVariables custom variables to add to the expression
-     *   evaluation context for enablement expressions or <code>null</code> for none
-     * @see #setEnablementContextVariable(String, Object)  
-     */
-    
-    public LibraryInstallDelegate( final IFacetedProjectBase fproj,
-                                   final IProjectFacetVersion fv,
-                                   final Map<String,Object> customEnablementContextVariables )
-    {
-        this.fproj = fproj;
-        this.fv = fv;
-        this.providers = Collections.emptyList();
-        this.providersReadOnly = Collections.emptyList();
-        this.selectedProvider = null;
-        this.isDefaultSelection = true;
-        this.configs = new HashMap<ILibraryProvider,LibraryProviderOperationConfig>();
-        this.customEnablementContextVariables = new HashMap<String,Object>();
-        
-        if( customEnablementContextVariables != null )
-        {
-            this.customEnablementContextVariables.putAll( customEnablementContextVariables );
-        }
-        
-        this.providerConfigListener = new IPropertyChangeListener()
-        {
-            public void propertyChanged( final String property,
-                                         final Object oldValue,
-                                         final Object newValue )
-            {
-                notifyListeners( property, oldValue, newValue );
-            }
-        };
-
-        this.facetedProjectListener = new IFacetedProjectListener()
-        {
-            public void handleEvent( final IFacetedProjectEvent event )
-            {
-                refresh();
-            }
-        };
-
-        getFacetedProject().addListener( this.facetedProjectListener, IFacetedProjectEvent.Type.PROJECT_MODIFIED );
-        
-        reset();
-    }
-    
-    /**
-     * Constructs a new library install delegate. 
-     * 
-     * @param fproj the faceted project (or a working copy)
-     * @param fv the project facet that is requesting libraries
-     */
-    
-    public LibraryInstallDelegate( final IFacetedProjectBase fproj,
-                                   final IProjectFacetVersion fv )
-    {
-        this( fproj, fv, null );
-    }
-    
-    /**
-     * Returns the faceted project that this install delegate was configured to use. Can be a working
-     * copy.
-     * 
-     * @return the faceted project that this install delegate was configured to use
-     */
-    
-    public IFacetedProjectBase getFacetedProject()
-    {
-        return this.fproj;
-    }
-    
-    /**
-     * Returns the project facet that made the request for libraries.
-     * 
-     * @return the project facet that made the request for libraries
-     */
-    
-    public synchronized IProjectFacet getProjectFacet()
-    {
-        return this.fv.getProjectFacet();
-    }
-    
-    /**
-     * Returns the project facet version that made the request for libraries.
-     * 
-     * @return the project facet version that made the request for libraries
-     */
-    
-    public synchronized IProjectFacetVersion getProjectFacetVersion()
-    {
-        return this.fv;
-    }
-    
-    /**
-     * Changes the project facet version of the requesting facet after the library install
-     * delegate has been created.
-     * 
-     * @param fv the project facet version
-     */
-    
-    public synchronized void setProjectFacetVersion( final IProjectFacetVersion fv )
-    {
-        this.fv = fv;
-        refresh();
-    }
-    
-    /**
-     * Returns the list of library providers that are currently available. The list is sorted
-     * by library provider priority (highest priority first). To listen for changes to this
-     * list use PROP_AVAILABLE_PROVIDERS.
-     * 
-     * @return the list of library providers that are currently available
-     */
-    
-    public synchronized List<ILibraryProvider> getLibraryProviders()
-    {
-        return this.providersReadOnly;
-    }
-    
-    /**
-     * Returns the library provider that is currently selected. To list for changes to this
-     * property use PROP_SELECTED_PROVIDER.
-     * 
-     * @return the library provider that is currently selected
-     */
-    
-    public synchronized ILibraryProvider getLibraryProvider()
-    {
-        return this.selectedProvider;
-    }
-    
-    /**
-     * Sets the current library provider. 
-     * 
-     * @param provider the provider that should be selected
-     */
-    
-    public synchronized void setLibraryProvider( final ILibraryProvider provider )
-    {
-        setLibraryProvider( provider, false, true );
-    }
-
-    private synchronized void setLibraryProvider( final ILibraryProvider provider,
-                                                  final boolean isDefaultSelection,
-                                                  final boolean notifyListeners )
-    {
-        if( ! this.providers.contains( provider ) &&
-            ! ( this.providers.size() == 0 && provider == null ) )
-        {
-            throw new IllegalArgumentException();
-        }
-        
-        if( ! MiscUtil.equal( this.selectedProvider, provider ) )
-        {
-            final ILibraryProvider oldSelectedProvider = this.selectedProvider;
-            
-            this.selectedProvider = provider;
-            this.isDefaultSelection = isDefaultSelection;
-            
-            final LibraryProviderOperationConfig config = this.configs.get( this.selectedProvider );
-            
-            if( config != null )
-            {
-                config.reset();
-            }
-            
-            if( notifyListeners )
-            {
-                notifyListeners( PROP_SELECTED_PROVIDER, oldSelectedProvider, this.selectedProvider );
-            }
-        }
-    }
-    
-    /**
-     * Returns the install operation config of the currently-selected provider. This property's
-     * lifecycle is bound to the current provider changes, so listen for changes using 
-     * PROP_SELECTED_PROVIDER.
-     * 
-     * @return the install operation config of the currently-selected provider
-     */
-    
-    public synchronized LibraryProviderOperationConfig getLibraryProviderOperationConfig()
-    {
-        if( this.selectedProvider == null )
-        {
-            return null;
-        }
-        else
-        {
-            return this.configs.get( this.selectedProvider );
-        }
-    }
-    
-    /**
-     * Returns the install operation config for any of the available library providers.
-     * 
-     * @param provider the library provider to look up install operation config
-     * @return the install operation config for any of the available library providers
-     */
-    
-    public synchronized LibraryProviderOperationConfig getLibraryProviderOperationConfig( final ILibraryProvider provider )
-    {
-        if( ! this.providers.contains( provider ) )
-        {
-            throw new IllegalArgumentException();
-        }
-        
-        return this.configs.get( provider );
-    }
-    
-    /**
-     * Adds a custom variable to the expression evaluation context for enablement expressions
-     * controlling activation of library providers. Setting the variable to <code>null</code>
-     * has the effect of removing it. Calling this method will trigger a refresh of available 
-     * library providers.
-     *  
-     * @param name the name of the variable
-     * @param value the value of the variable
-     */
-    
-    public synchronized void setEnablementContextVariable( final String name,
-                                                           final Object value )
-    {
-        if( value == null )
-        {
-            this.customEnablementContextVariables.remove( name );
-        }
-        else
-        {
-            this.customEnablementContextVariables.put( name, value );
-        }
-        
-        refresh();
-    }
-    
-    /**
-     * Refreshes the list of available library providers and resets the current library provider
-     * if the one currently selected is not in the available list any longer.
-     */
-    
-    public synchronized void refresh()
-    {
-        final IProjectFacet f = getProjectFacet();
-        final IProjectFacetVersion fv = getProjectFacetVersion();
-        final IFacetedProjectBase fproj = getFacetedProject();
-        
-        final List<ILibraryProvider> oldProviders = this.providers;
-        
-        for( ILibraryProvider provider : oldProviders )
-        {
-            final LibraryProviderOperationConfig config = this.configs.remove( provider );
-            
-            if( config != null )
-            {
-                config.removeListener( this.providerConfigListener );
-                config.dispose();
-            }
-        }
-        
-        final List<ILibraryProvider> newProviders = new ArrayList<ILibraryProvider>();
-    
-        for( ILibraryProvider provider : LibraryProviderFramework.getProviders() )
-        {
-            if( ! provider.isAbstract() && ! provider.isHidden() 
-                && provider.isEnabledFor( fproj, fv, this.customEnablementContextVariables ) )
-            {
-                newProviders.add( provider );
-            }
-        }
-        
-        final Comparator<ILibraryProvider> comp = CollectionsUtil.getInvertingComparator();
-        Collections.sort( newProviders, comp );
-        
-        final IFacetedProject base;
-        
-        if( fproj instanceof IFacetedProject )
-        {
-            base = (IFacetedProject) fproj;
-        }
-        else
-        {
-            base = ( (IFacetedProjectWorkingCopy) fproj ).getFacetedProject();
-        }
-        
-        if( base != null && base.hasProjectFacet( f ) )
-        {
-            // This code is here to take care of cases where framework injects a provider
-            // that is not typically available for unknown and legacy usecases.
-            
-            final ILibraryProvider provider 
-                = LibraryProviderFramework.getCurrentProvider( base.getProject(), f );
-            
-            if( provider == null )
-            {
-                throw new RuntimeException();
-            }
-            
-            if( ! newProviders.contains( provider ) )
-            {
-                newProviders.add( provider );
-            }
-        }
-        
-        this.providers = newProviders;
-        this.providersReadOnly = Collections.unmodifiableList( this.providers );
-        
-        for( ILibraryProvider provider : this.providers )
-        {
-            final LibraryProvider prov = (LibraryProvider) provider;
-            final LibraryProviderOperationConfig config = prov.createInstallOperationConfig( this );
-            config.addListener( this.providerConfigListener );
-            this.configs.put( provider, config );
-        }
-        
-        final ILibraryProvider oldSelectedProvider = this.selectedProvider;
-        
-        if( this.providers.size() > 0 )
-        {
-            if( this.selectedProvider == null || this.isDefaultSelection || 
-                ! this.providers.contains( this.selectedProvider ) )
-            {
-                ILibraryProvider provider = LibraryProviderFrameworkImpl.get().getLastProviderUsed( fv );
-                
-                if( provider == null || ! this.providers.contains( provider ) )
-                {
-                    provider = this.providers.iterator().next();
-                }
-                    
-                setLibraryProvider( provider, true, false );
-            }
-        }
-        else
-        {
-            setLibraryProvider( null, true, false );
-        }
-        
-        notifyListeners( PROP_AVAILABLE_PROVIDERS, oldProviders, this.providersReadOnly );
-
-        if( ! MiscUtil.equal( oldSelectedProvider, this.selectedProvider ) )
-        {
-            notifyListeners( PROP_SELECTED_PROVIDER, oldSelectedProvider, this.selectedProvider );
-        }
-    }
-
-    /**
-     * Resets this install delegate to its initial state (prior to any user changes).
-     */
-
-    public synchronized void reset()
-    {
-        refresh();
-        
-        final IProjectFacet facet = this.fv.getProjectFacet();
-        final IFacetedProject fpj;
-        
-        if( this.fproj instanceof IFacetedProject )
-        {
-            fpj = (IFacetedProject) this.fproj;
-        }
-        else
-        {
-            fpj = ( (IFacetedProjectWorkingCopy) this.fproj ).getFacetedProject();
-        }
-        
-        ILibraryProvider provider = null;
-        
-        if( this.uninstallDelegate != null )
-        {
-        	this.uninstallDelegate.dispose();
-        	this.uninstallDelegate = null;
-        }
-        
-        if( fpj != null && fpj.hasProjectFacet( facet ) )
-        {
-            this.uninstallDelegate = new LibraryUninstallDelegate( fpj, this.fv );
-            
-            provider = LibraryProviderFramework.getCurrentProvider( fpj.getProject(), facet );
-            
-            if( provider == null )
-            {
-                throw new RuntimeException();
-            }
-        }
-        else
-        {
-            provider = LibraryProviderFrameworkImpl.get().getLastProviderUsed( this.fv );
-        
-            if( provider == null || ! this.providers.contains( provider ) )
-            {
-                if( ! this.providers.isEmpty() )
-                {
-                    provider = this.providers.iterator().next();
-                }
-                else
-                {
-                    provider = null;
-                }
-            }
-        }
-        
-        setLibraryProvider( provider );
-        
-        for( LibraryProviderOperationConfig config : this.configs.values() )
-        {
-            config.reset();
-        }
-    }
-
-    /**
-     * Checks the validity of the library install configuration. 
-     * 
-     * @return a status object describing configuration problems, if any
-     */
-    
-    public synchronized IStatus validate()
-    {
-        IStatus st = Status.OK_STATUS;
-        
-        if( this.providers.size() == 0 )
-        {
-            st = createErrorStatus( Resources.noProvidersAvailable );
-        }
-        else
-        {
-            final Object providerInstallOpConfig = this.configs.get( this.selectedProvider );
-            
-            if( providerInstallOpConfig instanceof LibraryProviderOperationConfig )
-            {
-                st = ( (LibraryProviderOperationConfig) providerInstallOpConfig ).validate();
-            }
-        }
-        
-        return st;
-    }
-    
-    /**
-     * Executes the library install operation.
-     * 
-     * @param monitor the progress monitor for reporting status and handling cancellation requests
-     * @throws CoreException if failed for some reason while executing the install operation
-     */
-    
-    public synchronized void execute( final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        beginTask( monitor, "", 10 ); //$NON-NLS-1$
-        
-        try
-        {
-            final IFacetedProjectBase fproj = getFacetedProject();
-            final IProjectFacetVersion fv = getProjectFacetVersion();
-            final LibraryProvider provider = (LibraryProvider) getLibraryProvider();
-            
-            // Turn this into a no-op if the selected library provider is either the legacy
-            // library provider or the unknown library provider. Those represent special corner
-            // cases and the standard uninstall/install does not work. This comes up in the property
-            // page case where the user hits ok without picking a different provider. Would be nice 
-            // if we could somehow turn this check into a more general "did user change" anything 
-            // check.
-            
-            final String rootLibraryProviderId = this.selectedProvider.getRootProvider().getId();
-            
-            if( rootLibraryProviderId.equals( "unknown-library-provider" ) || //$NON-NLS-1$
-                rootLibraryProviderId.equals( "legacy-library-provider" ) ) //$NON-NLS-1$
-            {
-                return;
-            }
-            
-            // Uninstall the previous library, if applicable.
-            
-            if( this.uninstallDelegate != null )
-            {
-                this.uninstallDelegate.execute( new NullProgressMonitor() );
-            }
-            
-            // Install the library.
-            
-            final LibraryProviderOperation libraryInstallOp 
-                = provider.createOperation( LibraryProviderActionType.INSTALL );
-            
-            final LibraryProviderOperationConfig libraryInstallOpConfig 
-                = getLibraryProviderOperationConfig();
-            
-            libraryInstallOp.execute( libraryInstallOpConfig, submon( monitor, 8 ) );
-            
-            // Record which library provider was used for this facet in workspace prefs. This 
-            // will be used to default the provider selection the next time this facet is installed.
-            
-            LibraryProviderFrameworkImpl.get().setLastProviderUsed( fv, provider );
-            worked( monitor, 1 );
-            
-            // Record which library provider was used for this facet in project metadata. This
-            // will be used to know which provider to use when the facet is being uninstalled or
-            // the version is being changed.
-            
-            LibraryProviderFrameworkImpl.get().setCurrentProvider( fproj.getProject(), fv.getProjectFacet(), provider );
-            
-            worked( monitor, 1 );
-        }
-        finally
-        {
-            done( monitor );
-        }
-    }
-    
-    /**
-     * Cleans up allocated resources. Client code that instantiates this class is responsible that the
-     * instance is properly disposed by calling the dispose method.
-     */
-    
-    public synchronized void dispose()
-    {
-    	if( this.uninstallDelegate != null )
-    	{
-    		this.uninstallDelegate.dispose();
-    	}
-    	
-        getFacetedProject().removeListener( this.facetedProjectListener );
-        
-        for( LibraryProviderOperationConfig cfg : this.configs.values() )
-        {
-            try
-            {
-                cfg.dispose();
-            }
-            catch( Exception e )
-            {
-                log( e );
-            }
-        }
-    }
-    
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String noProvidersAvailable;
-        
-        static
-        {
-            initializeMessages( LibraryInstallDelegate.class.getName(), 
-                                Resources.class );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/LibraryInstallDelegate.properties b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/LibraryInstallDelegate.properties
deleted file mode 100644
index 107a283..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/LibraryInstallDelegate.properties
+++ /dev/null
@@ -1 +0,0 @@
-noProvidersAvailable = No library providers are available for this facet. The facet cannot be installed.
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/LibraryProviderActionType.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/LibraryProviderActionType.java
deleted file mode 100644
index aee4e48..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/LibraryProviderActionType.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.libprov;
-
-/**
- * Enumeration of library provider action types.
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- * @since 1.4
- */
-
-public enum LibraryProviderActionType
-{
-    /**
-     * Represents the action of configuring the library in a project.
-     */
-    
-    INSTALL,
-    
-    /**
-     * Represents removing the library from a project.
-     */
-    
-    UNINSTALL
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/LibraryProviderFramework.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/LibraryProviderFramework.java
deleted file mode 100644
index 599bc32..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/LibraryProviderFramework.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.libprov;
-
-import java.util.Set;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.jst.common.project.facet.core.libprov.internal.LibraryProviderFrameworkImpl;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-
-/**
- * The root entry point for working with the Library Provider Framework.
- * 
- * @noinstantiate This class is not intended to be instantiated by clients.
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- * @since 1.4
- */
-
-public final class LibraryProviderFramework
-{
-    private LibraryProviderFramework() {}
-    
-    /**
-     * Returns all of the library providers declared in the system.
-     * 
-     * @return all of the library providers declared in the system
-     */
-    
-    public static Set<ILibraryProvider> getProviders()
-    {
-        return get().getProviders();
-    }
-    
-    /**
-     * Determines if a library provider with the specified id exists.
-     * 
-     * @param id the id of the library provider to use in lookup
-     * @return <code>true</code> if and only if a library provider with the specified
-     *   id exists
-     */
-    
-    public static boolean isProviderDefined( final String id )
-    {
-        return get().isProviderDefined( id );
-    }
-    
-    /**
-     * Returns the library provider corresponding to the specified id.
-     * 
-     * @param id the id of the library provider to use in lookup
-     * @return the library provider corresponding to the specified id
-     * @throws IllegalArgumentException if the specified provider id is not recognized
-     */
-    
-    public static ILibraryProvider getProvider( final String id )
-    {
-        return get().getProvider( id );
-    }
-    
-    /**
-     * Returns the library provider that is currently configured with the specified facet. Will
-     * return <code>null</code> if the facet is not installed in the specified project.
-     * 
-     * @param project the project in question
-     * @param facet the facet in question
-     * @return the library provider currently used by the facet in the specified project
-     */
-    
-    public static ILibraryProvider getCurrentProvider( final IProject project,
-                                                       final IProjectFacet facet )
-    {
-        return get().getCurrentProvider( project, facet );
-    }
-    
-    private static LibraryProviderFrameworkImpl get()
-    {
-        return LibraryProviderFrameworkImpl.get();
-    }
-
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/LibraryProviderInstallOperationConfig.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/LibraryProviderInstallOperationConfig.java
deleted file mode 100644
index a57a5a9..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/LibraryProviderInstallOperationConfig.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.libprov;
-
-
-/**
- * This class should be subclassed in order to implement parameterization of the library
- * provider install operations. If no additional parameters are necessary, this class can also be 
- * used directly.
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- * @since 1.4
- */
-
-public class LibraryProviderInstallOperationConfig
-
-    extends LibraryProviderOperationConfig
-    
-{
-    private LibraryInstallDelegate libraryInstallDelegate;
-    
-    /**
-     * Initializes the operation config. This method is called soon after the provider
-     * is instantiated. Extenders can override in order to add to the initialization, but
-     * have make sure to forward the init call up the inheritance chain.
-     * 
-     * @param libraryInstallDelegate the library install delegate that created this config object
-     * @param provider the library provider (useful if the same operation config class
-     *   is re-used between multiple providers)
-     */
-    
-    public void init( final LibraryInstallDelegate libraryInstallDelegate,
-                      final ILibraryProvider provider )
-    {
-        this.libraryInstallDelegate = libraryInstallDelegate;
-        
-        init( this.libraryInstallDelegate.getFacetedProject(),
-              this.libraryInstallDelegate.getProjectFacetVersion(),
-              provider );
-    }
-
-    /**
-     * Returns the library install delegate that created this install operation config and is
-     * controlling it's lifecycle.
-     * 
-     * @return the library install delegate that is controlling this operation config object
-     */
-    
-    public final LibraryInstallDelegate getLibraryInstallDelegate()
-    {
-        return this.libraryInstallDelegate;
-    }
-    
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/LibraryProviderOperation.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/LibraryProviderOperation.java
deleted file mode 100644
index 0b0906c..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/LibraryProviderOperation.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.libprov;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-
-/**
- * This class should be subclassed in order to provider the logic that should execute
- * when a library provider action (such as install and uninstall) is triggered.
- *
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- * @since 1.4
- */
-
-public abstract class LibraryProviderOperation
-{
-    /**
-     * Runs the library provider operation.
-     * 
-     * @param config the library provider operation config; will never be null
-     * @param monitor the progress monitor for status reporting and cancellation
-     * @throws CoreException if failed while executing the operation
-     */
-    
-    public abstract void execute( final LibraryProviderOperationConfig config,
-                                  final IProgressMonitor monitor )
-    
-        throws CoreException;
-    
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/LibraryProviderOperationConfig.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/LibraryProviderOperationConfig.java
deleted file mode 100644
index 931b2b7..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/LibraryProviderOperationConfig.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.libprov;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jst.common.project.facet.core.libprov.internal.PropertiesHost;
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectBase;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * This class should be subclassed in order to implement parameterization of the library
- * provider operations (such as install and uninstall). If no additional parameters are
- * necessary, this class can also be used directly.
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- * @since 1.4
- */
-
-public class LibraryProviderOperationConfig
-
-    extends PropertiesHost
-    
-{
-    private IFacetedProjectBase fpj;
-    private IProjectFacetVersion fv;
-    private ILibraryProvider provider;
-    
-    /**
-     * Initializes the operation config. This method is called soon after the provider
-     * is instantiated. Extenders can override in order to add to the initialization, but
-     * have make sure to forward the init call up the inheritance chain.
-     * 
-     * @param fpj the faceted project (or a working copy)
-     * @param fv the project facet that is making the request for libraries
-     * @param provider the library provider (useful if the same operation config class
-     *   is re-used between multiple providers)
-     */
-    
-    public void init( final IFacetedProjectBase fpj,
-                      final IProjectFacetVersion fv,
-                      final ILibraryProvider provider )
-    {
-        this.fpj = fpj;
-        this.fv = fv;
-        this.provider = provider;
-    }
-    
-    /**
-     * Returns the faceted project (or a working copy).
-     * 
-     * @return the faceted project (or a working copy)
-     */
-    
-    public final IFacetedProjectBase getFacetedProject()
-    {
-        return this.fpj;
-    }
-    
-    /**
-     * Returns the project facet that made the request for libraries.
-     * 
-     * @return the project facet that made the request for libraries
-     */
-    
-    public final IProjectFacet getProjectFacet()
-    {
-        return this.fv.getProjectFacet();
-    }
-    
-    /**
-     * Returns the project facet version that made the request for libraries.
-     * 
-     * @return the project facet version that made the request for libraries
-     */
-    
-    public final IProjectFacetVersion getProjectFacetVersion()
-    {
-        return this.fv;
-    }
-    
-    /**
-     * Returns the library provider. This is particularly useful in cases where the same
-     * operation config class is re-used across multiple library providers.
-     * 
-     * @return the library provider
-     */
-    
-    public final ILibraryProvider getLibraryProvider()
-    {
-        return this.provider;
-    }
-    
-    /**
-     * Adds a listener that will be notified when the property changes. If no properties
-     * are specified, the listener will be notified when any of the properties change. The 
-     * extender is responsible for defining available properties (typically via constants 
-     * in the config class) and for calling the notifyListeners method when a property changes.
-     * 
-     * @param listener the listener that should be registered
-     * @param properties the list of properties to listen to or an empty list to list to
-     *   all properties
-     */
-
-    @Override
-    public final void addListener( final IPropertyChangeListener listener,
-                                   final String... properties )
-    {
-        super.addListener( listener, properties );
-    }
-    
-    /**
-     * Removes the specified listener from the notification queue. Does nothing if the listener
-     * is not registered.
-     * 
-     * @param listener the listener that should be removed
-     */
-    
-    @Override
-    public final void removeListener( final IPropertyChangeListener listener )
-    {
-        super.removeListener( listener );
-    }
-    
-    /**
-     * Notifies registered listeners that a property has changed. The extender is responsible 
-     * for defining available properties (typically via constants in the config class) and for 
-     * calling this method when a property changes.
-     * 
-     * @param property the property that has changed
-     * @param oldValue the old value
-     * @param newValue the new value
-     */
-    
-    @Override
-    public final void notifyListeners( final String property,
-                                       final Object oldValue,
-                                       final Object newValue )
-    {
-        super.notifyListeners( property, oldValue, newValue );
-    }
-    
-    /**
-     * Validates the state of this operation config object and returns a status object
-     * describing any problems. If no problems are detected, this should return OK
-     * status (which is what the default implementation does).
-     * 
-     * @return the result of validating this operation config
-     */
-    
-    public IStatus validate()
-    {
-        return Status.OK_STATUS;
-    }
-    
-    /**
-     * Resets this operation config to its initial state (prior to any user changes). The
-     * default implementation does not do anything.
-     */
-
-    public void reset() {}
-
-    /**
-     * Allows the operation config implementation to dispose of any resources acquired during
-     * the life of this object. This is a good place to remove any external listeners that
-     * are registered. The default implementation does not do anything.
-     */
-    
-    public void dispose() {}
-    
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/LibraryUninstallDelegate.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/LibraryUninstallDelegate.java
deleted file mode 100644
index 437231e..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/LibraryUninstallDelegate.java
+++ /dev/null
@@ -1,221 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.libprov;
-
-import static org.eclipse.jst.common.project.facet.core.internal.FacetedProjectFrameworkJavaPlugin.log;
-import static org.eclipse.wst.common.project.facet.core.util.internal.ProgressMonitorUtil.beginTask;
-import static org.eclipse.wst.common.project.facet.core.util.internal.ProgressMonitorUtil.done;
-import static org.eclipse.wst.common.project.facet.core.util.internal.ProgressMonitorUtil.submon;
-import static org.eclipse.wst.common.project.facet.core.util.internal.ProgressMonitorUtil.worked;
-
-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.jst.common.project.facet.core.libprov.internal.LibraryProvider;
-import org.eclipse.jst.common.project.facet.core.libprov.internal.LibraryProviderFrameworkImpl;
-import org.eclipse.jst.common.project.facet.core.libprov.internal.PropertiesHost;
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectBase;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * Used for removing a library installed via the Library Provider Framework.
- * Instance of this class would typically be embedded in facet uninstall action config objects 
- * and then executed during the execution of those actions. 
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- * @since 1.4
- */
-
-public final class LibraryUninstallDelegate
-
-    extends PropertiesHost
-    
-{
-    private final IFacetedProjectBase fproj;
-    private IProjectFacetVersion fv;
-    private ILibraryProvider oldProvider = null;
-    private LibraryProviderOperationConfig oldProviderUninstallOpConfig = null;
-    
-    /**
-     * Constructs a new library uninstall delegate. 
-     * 
-     * @param fproj the faceted project (or a working copy)
-     * @param fv the project facet that installed the libraries
-     */
-    
-    public LibraryUninstallDelegate( final IFacetedProjectBase fproj,
-                                     final IProjectFacetVersion fv )
-    {
-        this.fproj = fproj;
-        this.fv = fv;
-        
-        this.oldProvider = LibraryProviderFramework.getCurrentProvider( fproj.getProject(), fv.getProjectFacet() );
-        
-        if( this.oldProvider == null )
-        {
-            this.oldProviderUninstallOpConfig = null;
-        }
-        else
-        {
-            final LibraryProvider prov = (LibraryProvider) this.oldProvider;
-            
-            this.oldProviderUninstallOpConfig 
-                = prov.createOperationConfig( fproj, fv, LibraryProviderActionType.UNINSTALL );
-        
-            this.oldProviderUninstallOpConfig.addListener
-            (
-                new IPropertyChangeListener()
-                {
-                    public void propertyChanged( final String property,
-                                                 final Object oldValue,
-                                                 final Object newValue )
-                    {
-                        notifyListeners( property, oldValue, newValue );
-                    }
-                }
-            );
-        }
-    }
-    
-    /**
-     * Returns the faceted project that this uninstall delegate was configured to use. Can be a working
-     * copy.
-     * 
-     * @return the faceted project that this uninstall delegate was configured to use
-     */
-    
-    public IFacetedProjectBase getFacetedProject()
-    {
-        return this.fproj;
-    }
-    
-    /**
-     * Returns the project facet that installed the libraries.
-     * 
-     * @return the project facet that installed the libraries
-     */
-    
-    public IProjectFacet getProjectFacet()
-    {
-        return this.fv.getProjectFacet();
-    }
-    
-    /**
-     * Returns the project facet version that installed the libraries.
-     * 
-     * @return the project facet version that installed the libraries
-     */
-
-    public IProjectFacetVersion getProjectFacetVersion()
-    {
-        return this.fv;
-    }
-    
-    /**
-     * Returns the library provider that the system determine is currently installed for
-     * the specified facet.
-     * 
-     * @return the library provider that is currently installed
-     */
-    
-    public ILibraryProvider getLibraryProvider()
-    {
-        return this.oldProvider;
-    }
-    
-    /**
-     * Returns the uninstall operation config for the currently installed library.
-     * 
-     * @return the uninstall operation config for the currently installed library
-     */
-    
-    public LibraryProviderOperationConfig getUninstallOperationConfig()
-    {
-        return this.oldProviderUninstallOpConfig;
-    }
-    
-    /**
-     * Checks the validity of the library uninstall configuration. 
-     * 
-     * @return a status object describing configuration problems, if any
-     */
-    
-    public IStatus validate()
-    {
-        IStatus st = Status.OK_STATUS;
-        
-        st = this.oldProviderUninstallOpConfig.validate();
-        
-        return st;
-    }
-    
-    /**
-     * Executes the library uninstall operation.
-     * 
-     * @param monitor the progress monitor for reporting status and handling cancellation requests
-     * @throws CoreException if failed for some reason while executing the uninstall operation
-     */
-    
-    public void execute( final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        beginTask( monitor, "", 10 ); //$NON-NLS-1$
-        
-        try
-        {
-            final IFacetedProjectBase fproj = getFacetedProject();
-            final IProjectFacetVersion fv = getProjectFacetVersion();
-            final LibraryProvider provider = (LibraryProvider) getLibraryProvider();
-            
-            // Uninstall the library.
-            
-            final LibraryProviderOperation libraryUninstallOp = provider.createOperation( LibraryProviderActionType.UNINSTALL );
-            
-            final LibraryProviderOperationConfig libraryUninstallOpConfig 
-                = getUninstallOperationConfig();
-            
-            libraryUninstallOp.execute( libraryUninstallOpConfig, submon( monitor, 9 ) );
-            
-            // Remove information about which library provider was used during the install.
-            
-            LibraryProviderFrameworkImpl.get().setCurrentProvider( fproj.getProject(), fv.getProjectFacet(), null );
-            
-            worked( monitor, 1 );
-        }
-        finally
-        {
-            done( monitor );
-        }
-    }
-
-    /**
-     * Cleans up allocated resources. Client code that instantiates this class is responsible that the
-     * instance is properly disposed by calling the dispose method.
-     */
-    
-    public void dispose()
-    {
-        try
-        {
-            this.oldProviderUninstallOpConfig.dispose();
-        }
-        catch( Exception e )
-        {
-            log( e );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/NoOpLibraryProviderInstallOperationConfig.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/NoOpLibraryProviderInstallOperationConfig.java
deleted file mode 100644
index 2b7f9dc..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/NoOpLibraryProviderInstallOperationConfig.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.libprov;
-
-import static org.eclipse.jst.common.project.facet.core.internal.FacetedProjectFrameworkJavaPlugin.PLUGIN_ID;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectBase;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * The install operation config corresponding to the no-op-library-provider that allows library
- * configuration to be disabled by user. This class can be subclassed by those wishing to extend 
- * the base implementation supplied by the framework.
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- * @since 1.4
- */
-
-public class NoOpLibraryProviderInstallOperationConfig
-
-    extends LibraryProviderOperationConfig
-    
-{
-    public static final String PARAM_WARNING = "warning";  //$NON-NLS-1$
-    
-    private String warning = null;
-    
-    /**
-     * Constructs the no-op library provider install operation config.
-     */
-    
-    public NoOpLibraryProviderInstallOperationConfig()
-    {
-        this.warning = null;
-    }
-
-    /**
-     * Initializes the operation config. This method is called soon after the provider
-     * is instantiated. Extenders can override in order to add to the initialization, but
-     * have make sure to forward the init call up the inheritance chain.
-     * 
-     * @param fpj the faceted project (or a working copy)
-     * @param fv the project facet that is making the request for libraries
-     * @param provider the library provider (useful if the same operation config class
-     *   is re-used between multiple providers)
-     */
-    
-    @Override
-    public synchronized void init( final IFacetedProjectBase fproj,
-                                   final IProjectFacetVersion fv,
-                                   final ILibraryProvider provider )
-    {
-        super.init( fproj, fv, provider );
-        
-        this.warning = provider.getParams().get( PARAM_WARNING );
-    }
-    
-    /**
-     * Validates the state of this operation config object and returns a status object
-     * describing any problems. If no problems are detected, this should return OK
-     * status.
-     * 
-     * @return the result of validating this operation config
-     */
-    
-    @Override
-    public synchronized IStatus validate()
-    {
-        IStatus st = Status.OK_STATUS;
-        
-        if( this.warning != null )
-        {
-            st = new Status( IStatus.WARNING, PLUGIN_ID, this.warning );
-        }
-        
-        return st;
-    }
-    
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/NoOpLibraryProviderOperation.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/NoOpLibraryProviderOperation.java
deleted file mode 100644
index 529921b..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/NoOpLibraryProviderOperation.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.libprov;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jst.common.project.facet.core.libprov.LibraryProviderOperation;
-import org.eclipse.jst.common.project.facet.core.libprov.LibraryProviderOperationConfig;
-
-/**
- * This operation implementation can be used in situations when an install or an uninstall 
- * operation doesn't actually have do do anything.
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- * @since 1.4
- */
-
-public final class NoOpLibraryProviderOperation
-
-    extends LibraryProviderOperation
-    
-{
-    public void execute( final LibraryProviderOperationConfig config,
-                         final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        // The operation is a no-op.
-    }
-    
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/internal/LegacyLibraryProviderDetectorsExtensionPoint.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/internal/LegacyLibraryProviderDetectorsExtensionPoint.java
deleted file mode 100644
index a2431b8..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/internal/LegacyLibraryProviderDetectorsExtensionPoint.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.libprov.internal;
-
-import static org.eclipse.jst.common.project.facet.core.internal.FacetedProjectFrameworkJavaPlugin.PLUGIN_ID;
-import static org.eclipse.jst.common.project.facet.core.internal.FacetedProjectFrameworkJavaPlugin.log;
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.findExtensions;
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.findRequiredAttribute;
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.getTopLevelElements;
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.instantiate;
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.loadClass;
-
-import java.lang.ref.WeakReference;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.jst.common.project.facet.core.libprov.ILibraryProvider;
-import org.eclipse.jst.common.project.facet.core.libprov.LegacyLibraryProviderDetector;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.InvalidExtensionException;
-
-/**
- * Contains the logic for processing the <code>legacyLibraryProviderDetectors</code> extension point. 
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class LegacyLibraryProviderDetectorsExtensionPoint
-{
-    public static final String EXTENSION_POINT_ID = "legacyLibraryProviderDetectors"; //$NON-NLS-1$
-    
-    private static final String ATTR_CLASS = "class"; //$NON-NLS-1$
-    private static final String EL_DETECTOR = "detector"; //$NON-NLS-1$
-
-    private static List<DetectorExtension> extensions = null;
-    
-    public static synchronized ILibraryProvider detect( final IProject project,
-                                                        final IProjectFacet facet )
-    {
-        readExtensions();
-        
-        for( Iterator<DetectorExtension> itr = extensions.iterator(); itr.hasNext(); )
-        {
-            final DetectorExtension extension = itr.next();
-            final LegacyLibraryProviderDetector detector;
-            
-            try
-            {
-                detector = extension.createDetector();
-            }
-            catch( InvalidExtensionException e )
-            {
-                // Problem already reported to the user in the log. Removing the extension from
-                // the list so that we don't keep tripping over it in the future.
-                
-                itr.remove();
-                continue;
-            }
-            
-            try
-            {
-                final ILibraryProvider provider = detector.detect( project, facet );
-                
-                if( provider != null )
-                {
-                    return provider;
-                }
-            }
-            catch( Exception e )
-            {
-                log( e );
-            }
-        }
-        
-        return null;
-    }
-    
-    private static synchronized void readExtensions()
-    {
-        if( extensions != null )
-        {
-            return;
-        }
-        
-        extensions = new ArrayList<DetectorExtension>();        
-        
-        for( IConfigurationElement element 
-             : getTopLevelElements( findExtensions( PLUGIN_ID, EXTENSION_POINT_ID ) ) )
-        {
-            if( element.getName().equals( EL_DETECTOR ) )
-            {
-                try
-                {
-                    final String pluginId = element.getContributor().getName();
-                    final String className = findRequiredAttribute( element, ATTR_CLASS );
-                    extensions.add( new DetectorExtension( pluginId, className ) );
-                }
-                catch( InvalidExtensionException e )
-                {
-                    // Continue. The problem has been reported to the user via the log.
-                }
-            }
-        }
-    }
-
-    private static final class DetectorExtension
-    {
-        private final String pluginId;
-        private final String className;
-        private WeakReference<Class<? extends LegacyLibraryProviderDetector>> classWeakReference;
-        
-        public DetectorExtension( final String pluginId,
-                                  final String className )
-        {
-            this.pluginId = pluginId;
-            this.className = className;
-        }
-        
-        public synchronized LegacyLibraryProviderDetector createDetector()
-        
-            throws InvalidExtensionException
-            
-        {
-            Class<? extends LegacyLibraryProviderDetector> detectorClass 
-                = this.classWeakReference == null ? null : this.classWeakReference.get();
-            
-            if( detectorClass == null )
-            {
-                detectorClass = loadClass( this.pluginId, this.className, LegacyLibraryProviderDetector.class );
-                
-                if( detectorClass == null )
-                {
-                    throw new InvalidExtensionException();
-                }
-                
-                this.classWeakReference = new WeakReference<Class<? extends LegacyLibraryProviderDetector>>( detectorClass );
-            }
-            
-            final LegacyLibraryProviderDetector detector = instantiate( this.pluginId, detectorClass );
-            
-            if( detector == null )
-            {
-                throw new InvalidExtensionException();
-            }
-            
-            return detector;
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/internal/LegacyLibraryProviderInstallOperation.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/internal/LegacyLibraryProviderInstallOperation.java
deleted file mode 100644
index cd30c01..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/internal/LegacyLibraryProviderInstallOperation.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.libprov.internal;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jst.common.project.facet.core.libprov.LibraryProviderOperation;
-import org.eclipse.jst.common.project.facet.core.libprov.LibraryProviderOperationConfig;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class LegacyLibraryProviderInstallOperation
-
-    extends LibraryProviderOperation
-    
-{
-    public void execute( final LibraryProviderOperationConfig config,
-                         final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        // This is never expected to be called...
-        throw new IllegalStateException();
-    }
-    
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/internal/LegacyRuntimeLibraryProviderDetector.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/internal/LegacyRuntimeLibraryProviderDetector.java
deleted file mode 100644
index 5b68ad0..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/internal/LegacyRuntimeLibraryProviderDetector.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.libprov.internal;
-
-import static org.eclipse.jst.common.project.facet.core.internal.FacetedProjectFrameworkJavaPlugin.log;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jst.common.project.facet.core.internal.ClasspathUtil;
-import org.eclipse.jst.common.project.facet.core.libprov.ILibraryProvider;
-import org.eclipse.jst.common.project.facet.core.libprov.LegacyLibraryProviderDetector;
-import org.eclipse.jst.common.project.facet.core.libprov.LibraryProviderFramework;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class LegacyRuntimeLibraryProviderDetector
-
-    extends LegacyLibraryProviderDetector
-    
-{
-    private static final String LEGACY_RUNTIME_LIBRARY_PROVIDER_ID 
-        = "legacy-runtime-library-provider"; //$NON-NLS-1$
-    
-    @Override
-    public ILibraryProvider detect( final IProject project,
-                                    final IProjectFacet facet )
-    {
-        try
-        {
-            if( ClasspathUtil.getClasspathEntries( project, facet ).size() > 0 )
-            {
-                return LibraryProviderFramework.getProvider( LEGACY_RUNTIME_LIBRARY_PROVIDER_ID );
-            }
-        }
-        catch( CoreException e )
-        {
-            log( e );
-        }
-        
-        return null;
-    }
-    
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/internal/LegacyRuntimeLibraryProviderUninstallOperation.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/internal/LegacyRuntimeLibraryProviderUninstallOperation.java
deleted file mode 100644
index 0cadf04..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/internal/LegacyRuntimeLibraryProviderUninstallOperation.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.libprov.internal;
-
-import static org.eclipse.wst.common.project.facet.core.util.internal.ProgressMonitorUtil.beginTask;
-import static org.eclipse.wst.common.project.facet.core.util.internal.ProgressMonitorUtil.done;
-import static org.eclipse.wst.common.project.facet.core.util.internal.ProgressMonitorUtil.worked;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jst.common.project.facet.core.internal.ClasspathUtil;
-import org.eclipse.jst.common.project.facet.core.libprov.LibraryProviderOperation;
-import org.eclipse.jst.common.project.facet.core.libprov.LibraryProviderOperationConfig;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class LegacyRuntimeLibraryProviderUninstallOperation
-
-    extends LibraryProviderOperation
-    
-{
-    public void execute( final LibraryProviderOperationConfig config,
-                         final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        beginTask( monitor, "", 1 ); //$NON-NLS-1$
-        
-        try
-        {
-            final IProject project = config.getFacetedProject().getProject();
-            ClasspathUtil.removeClasspathEntries( project, config.getProjectFacet() );
-            
-            worked( monitor, 1 );
-        }
-        finally
-        {
-            done( monitor );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/internal/LibraryInstallRecord.properties b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/internal/LibraryInstallRecord.properties
deleted file mode 100644
index ddf6482..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/internal/LibraryInstallRecord.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-exceptionWhileParsing = Failed while parsing "{0}" file.
-corruptedInstallRecordFile = The install record file "{0}" is corrupted.
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/internal/LibraryProvider.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/internal/LibraryProvider.java
deleted file mode 100644
index 2cf49e3..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/internal/LibraryProvider.java
+++ /dev/null
@@ -1,469 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.libprov.internal;
-
-import static org.eclipse.jst.common.project.facet.core.internal.FacetedProjectFrameworkJavaPlugin.log;
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.instantiate;
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.loadClass;
-
-import java.util.ArrayList;
-import java.util.EnumMap;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.expressions.EvaluationContext;
-import org.eclipse.core.expressions.EvaluationResult;
-import org.eclipse.core.expressions.Expression;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jst.common.project.facet.core.libprov.EnablementExpressionContext;
-import org.eclipse.jst.common.project.facet.core.libprov.ILibraryProvider;
-import org.eclipse.jst.common.project.facet.core.libprov.LibraryInstallDelegate;
-import org.eclipse.jst.common.project.facet.core.libprov.LibraryProviderActionType;
-import org.eclipse.jst.common.project.facet.core.libprov.LibraryProviderInstallOperationConfig;
-import org.eclipse.jst.common.project.facet.core.libprov.LibraryProviderOperation;
-import org.eclipse.jst.common.project.facet.core.libprov.LibraryProviderOperationConfig;
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectBase;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class LibraryProvider
-
-    implements ILibraryProvider
-    
-{
-    private final class ActionDef
-    {
-        private final String configClassName;
-        private Class<LibraryProviderOperationConfig> configClass;
-        private final String operationClassName;
-        private Class<LibraryProviderOperation> operationClass;
-        
-        public ActionDef( final String configClassName,
-                          final String operationClassName )
-        {
-            if( configClassName == null )
-            {
-                this.configClassName = null;
-                this.configClass = LibraryProviderOperationConfig.class;
-            }
-            else
-            {
-                this.configClassName = configClassName;
-                this.configClass = null;
-            }
-            
-            this.operationClassName = operationClassName;
-            this.operationClass = null;
-        }
-        
-        public String getPluginId()
-        {
-            return LibraryProvider.this.getPluginId();
-        }
-        
-        public synchronized Class<LibraryProviderOperationConfig> getConfigClass()
-        {
-            if( this.configClass == null )
-            {
-                this.configClass = loadClass( getPluginId(), this.configClassName,
-                                              LibraryProviderOperationConfig.class );
-            }
-            
-            return this.configClass;
-        }
-        
-        public synchronized Class<LibraryProviderOperation> getOperationClass()
-        {
-            if( this.operationClass == null )
-            {
-                this.operationClass 
-                    = loadClass( getPluginId(), this.operationClassName, 
-                                 LibraryProviderOperation.class );
-            }
-            
-            return this.operationClass;
-        }
-    }
-    
-    private static final String EXPR_VAR_CONTEXT 
-        = "context"; //$NON-NLS-1$
-
-    private static final String EXPR_VAR_REQUESTING_PROJECT_FACET 
-        = "requestingProjectFacet"; //$NON-NLS-1$
-    
-    private static final String EXPR_VAR_PROJECT_FACETS 
-        = "projectFacets"; //$NON-NLS-1$
-    
-    private static final String EXPR_VAR_TARGETED_RUNTIMES 
-        = "targetedRuntimes"; //$NON-NLS-1$
-    
-    private static final String EXPR_VAR_PROVIDER
-        = "provider"; //$NON-NLS-1$
-    
-    private String id;
-    private String pluginId;
-    private String label;
-    private ILibraryProvider base;
-    private boolean isAbstract;
-    private boolean isHidden;
-    private Expression enablementCondition;
-    private Integer priority;
-    private final Map<String,String> params;
-    private final Map<LibraryProviderActionType,ActionDef> actionDefs;
-    
-    LibraryProvider()
-    {
-        this.id = null;
-        this.pluginId = null;
-        this.label = null;
-        this.base = null;
-        this.isAbstract = false;
-        this.isHidden = false;
-        this.enablementCondition = null;
-        this.priority = null;
-        this.params = new HashMap<String,String>();
-        this.actionDefs = new EnumMap<LibraryProviderActionType,ActionDef>( LibraryProviderActionType.class );
-    }
-    
-    public String getId()
-    {
-        return this.id;
-    }
-    
-    void setId( final String id )
-    {
-        this.id = id;
-    }
-    
-    public String getPluginId()
-    {
-        return this.pluginId;
-    }
-    
-    void setPluginId( final String pluginId )
-    {
-        this.pluginId = pluginId;
-    }
-    
-    public String getLabel()
-    {
-        final String result;
-        
-        if( this.label != null )
-        {
-            result = this.label;
-        }
-        else
-        {
-            if( this.base != null )
-            {
-                result = this.base.getLabel();
-            }
-            else
-            {
-                result = this.id;
-            }
-        }
-        
-        return result;
-    }
-    
-    void setLabel( final String label )
-    {
-        this.label = label;
-    }
-    
-    public ILibraryProvider getBaseProvider()
-    {
-        return this.base;
-    }
-    
-    void setBaseProvider( final ILibraryProvider base )
-    {
-        this.base = base;
-    }
-    
-    public ILibraryProvider getRootProvider()
-    {
-        ILibraryProvider prov = this;
-        
-        while( prov.getBaseProvider() != null )
-        {
-            prov = prov.getBaseProvider();
-        }
-        
-        return prov;
-    }
-    
-    public boolean isAbstract()
-    {
-        return this.isAbstract;
-    }
-    
-    void setIsAbstract( final boolean isAbstract )
-    {
-        this.isAbstract = isAbstract;
-    }
-    
-    public boolean isHidden()
-    {
-        return this.isHidden;
-    }
-    
-    void setIsHidden( final boolean isHidden )
-    {
-        this.isHidden = isHidden;
-    }
-    
-    public int getPriority()
-    {
-        if( this.priority != null )
-        {
-            return this.priority.intValue();
-        }
-        else
-        {
-            if( this.base != null )
-            {
-                return this.base.getPriority();
-            }
-            else
-            {
-                return 0;
-            }
-        }
-    }
-    
-    void setPriority( final int priority )
-    {
-        this.priority = Integer.valueOf( priority );
-    }
-    
-    public boolean isEnabledFor( final IFacetedProjectBase fproj,
-                                 final IProjectFacetVersion fv )
-    {
-        return isEnabledFor( fproj, fv, null );
-    }
-    
-    public boolean isEnabledFor( final IFacetedProjectBase fproj,
-                                 final IProjectFacetVersion fv,
-                                 final Map<String,Object> customVariables )
-    {
-        final EvaluationContext evalContext = new EvaluationContext( null, fv );
-        final EnablementExpressionContext context = new EnablementExpressionContext( fproj, fv, this );
-        evalContext.setAllowPluginActivation( true );
-        
-        if( customVariables != null )
-        {
-            for( Map.Entry<String,Object> entry : customVariables.entrySet() )
-            {
-                evalContext.addVariable( entry.getKey(), entry.getValue() );
-            }
-        }
-        
-        evalContext.addVariable( EXPR_VAR_CONTEXT, context );
-        evalContext.addVariable( EXPR_VAR_REQUESTING_PROJECT_FACET, fv );
-        evalContext.addVariable( EXPR_VAR_PROJECT_FACETS, fproj.getProjectFacets() );
-        evalContext.addVariable( EXPR_VAR_TARGETED_RUNTIMES, fproj.getTargetedRuntimes() );
-        evalContext.addVariable( EXPR_VAR_PROVIDER, this );
-        
-        for( Expression expression : getEnablementConditions() )
-        {
-            try
-            {
-                final EvaluationResult evalResult = expression.evaluate( evalContext );
-                
-                if( evalResult == EvaluationResult.FALSE )
-                {
-                    return false;
-                }
-            }
-            catch( CoreException e )
-            {
-                log( e );
-            }
-        }
-
-        return true;
-    }
-    
-    void setEnablementCondition( final Expression enablementCondition )
-    {
-        this.enablementCondition = enablementCondition;
-    }
-    
-    private List<Expression> getEnablementConditions()
-    {
-        final List<Expression> expressions = new ArrayList<Expression>();
-        LibraryProvider provider = this;
-        
-        while( provider != null )
-        {
-            if( provider.enablementCondition != null )
-            {
-                expressions.add( provider.enablementCondition );
-            }
-            
-            provider = (LibraryProvider) provider.base;
-        }
-        
-        return expressions;
-    }
-    
-    public Map<String,String> getParams()
-    {
-        final Map<String,String> result = new HashMap<String,String>();
-        
-        if( this.base != null )
-        {
-            result.putAll( ( (LibraryProvider) this.base ).getParams() );
-        }
-        
-        result.putAll( this.params );
-        
-        return result;
-    }
-    
-    void addParam( final String name,
-                   final String value )
-    {
-        this.params.put( name, value );
-    }
-
-    public boolean isActionSupported( final LibraryProviderActionType type )
-    {
-        return ( getActionDef( type ) != null );
-    }
-    
-    public LibraryProviderOperation createOperation( final LibraryProviderActionType type )
-    {
-        final ActionDef actionDef = getActionDef( type );
-        
-        if( actionDef == null )
-        {
-            throw new IllegalArgumentException();
-        }
-        
-        final Class<LibraryProviderOperation> cl = actionDef.getOperationClass();
-        
-        if( cl == null )
-        {
-            // The operation class could not be loaded. The problem has been reported to 
-            // the user via the log.
-            
-            return null;
-        }
-        
-        return instantiate( actionDef.getPluginId(), cl );
-    }
-
-    public LibraryProviderOperationConfig createInstallOperationConfig( final LibraryInstallDelegate libraryInstallDelegate )
-    {
-        final ActionDef actionDef = getActionDef( LibraryProviderActionType.INSTALL );
-        
-        if( actionDef == null )
-        {
-            throw new IllegalArgumentException();
-        }
-        
-        final Class<LibraryProviderOperationConfig> cl = actionDef.getConfigClass();
-        
-        if( cl == null )
-        {
-            // Either the action has no config or the config class could not be loaded. In
-            // the latter case, the problem has been reported to the user via the log.
-            
-            return null;
-        }
-        
-        final LibraryProviderOperationConfig cfg = instantiate( actionDef.getPluginId(), cl );
-        
-        if( cfg instanceof LibraryProviderInstallOperationConfig )
-        {
-            ( (LibraryProviderInstallOperationConfig) cfg ).init( libraryInstallDelegate, this );
-        }
-        else
-        {
-            cfg.init( libraryInstallDelegate.getFacetedProject(), 
-                      libraryInstallDelegate.getProjectFacetVersion(), this );
-        }
-        
-        return cfg;
-    }
-    
-    public LibraryProviderOperationConfig createOperationConfig( final IFacetedProjectBase fproj,
-                                                                 final IProjectFacetVersion fv,
-                                                                 final LibraryProviderActionType type )
-    {
-        final ActionDef actionDef = getActionDef( type );
-        
-        if( actionDef == null )
-        {
-            throw new IllegalArgumentException();
-        }
-        
-        final Class<LibraryProviderOperationConfig> cl = actionDef.getConfigClass();
-        
-        if( cl == null )
-        {
-            // Either the action has no config or the config class could not be loaded. In
-            // the latter case, the problem has been repoted to the user via the log.
-            
-            return null;
-        }
-        
-        final LibraryProviderOperationConfig cfg = instantiate( actionDef.getPluginId(), cl );
-        cfg.init( fproj, fv, this );
-        
-        return cfg;
-    }
-    
-    ActionDef getActionDef( final LibraryProviderActionType type )
-    {
-        ActionDef actionDef = this.actionDefs.get( type );
-        
-        if( actionDef == null && this.base != null )
-        {
-            actionDef = ( (LibraryProvider) this.base ).getActionDef( type );
-        }
-        
-        return actionDef;
-    }
-    
-    void addActionDef( final LibraryProviderActionType type,
-                       final String configClassName,
-                       final String operationClassName )
-    {
-        final ActionDef actionDef = new ActionDef( configClassName, operationClassName );
-        this.actionDefs.put( type, actionDef );
-    }
-    
-    public int compareTo( final ILibraryProvider other )
-    {
-        final int p1 = getPriority();
-        final int p2 = other.getPriority();
-        
-        int result = ( p1 < p2 ? -1 : ( p1 == p2 ? 0 : 1 ) );
-        
-        if( result == 0 )
-        {
-            result = getId().compareTo( other.getId() );
-        }
-        
-        return result;
-    }
-    
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/internal/LibraryProviderFrameworkImpl.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/internal/LibraryProviderFrameworkImpl.java
deleted file mode 100644
index a05526c..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/internal/LibraryProviderFrameworkImpl.java
+++ /dev/null
@@ -1,505 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.libprov.internal;
-
-import static org.eclipse.jst.common.project.facet.core.internal.FacetedProjectFrameworkJavaPlugin.PLUGIN_ID;
-import static org.eclipse.jst.common.project.facet.core.internal.FacetedProjectFrameworkJavaPlugin.createErrorStatus;
-import static org.eclipse.jst.common.project.facet.core.internal.FacetedProjectFrameworkJavaPlugin.log;
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.findOptionalElement;
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.findRequiredAttribute;
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.findRequiredElement;
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.getElementValue;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.expressions.Expression;
-import org.eclipse.core.expressions.ExpressionConverter;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jst.common.project.facet.core.libprov.ILibraryProvider;
-import org.eclipse.jst.common.project.facet.core.libprov.LibraryProviderActionType;
-import org.eclipse.jst.common.project.facet.core.libprov.LibraryProviderFramework;
-import org.eclipse.jst.common.project.facet.core.libprov.LibraryProviderOperationConfig;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.FacetedProjectFramework;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.InvalidExtensionException;
-import org.osgi.service.prefs.BackingStoreException;
-import org.osgi.service.prefs.Preferences;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class LibraryProviderFrameworkImpl
-{
-    private static final String UNKNOWN_LIBRARY_PROVIDER = "unknown-library-provider"; //$NON-NLS-1$
-    
-    private static final String EXTENSION_POINT_ID = "libraryProviders"; //$NON-NLS-1$
-    
-    private static final String EL_ACTION = "action"; //$NON-NLS-1$
-    private static final String EL_CONFIG = "config"; //$NON-NLS-1$
-    private static final String EL_ENABLEMENT = "enablement"; //$NON-NLS-1$
-    private static final String EL_LABEL = "label"; //$NON-NLS-1$
-    private static final String EL_OPERATION = "operation"; //$NON-NLS-1$
-    private static final String EL_PARAM = "param"; //$NON-NLS-1$
-    private static final String EL_PRIORITY = "priority"; //$NON-NLS-1$
-    private static final String EL_PROVIDER = "provider"; //$NON-NLS-1$
-    private static final String ATTR_ABSTRACT = "abstract"; //$NON-NLS-1$
-    private static final String ATTR_CLASS = "class"; //$NON-NLS-1$
-    private static final String ATTR_EXTENDS = "extends"; //$NON-NLS-1$
-    private static final String ATTR_HIDDEN = "hidden"; //$NON-NLS-1$
-    private static final String ATTR_ID = "id"; //$NON-NLS-1$
-    private static final String ATTR_NAME = "name"; //$NON-NLS-1$
-    private static final String ATTR_TYPE = "type"; //$NON-NLS-1$
-    private static final String ATTR_VALUE = "value"; //$NON-NLS-1$
-    
-    private static final String PREFS_LIBPROV = "libprov"; //$NON-NLS-1$
-    private static final String PREFS_PROVIDER_ID = "provider-id"; //$NON-NLS-1$
-    private static final String PREFS_LAST_PROVIDER_USED = PREFS_LIBPROV + "/last-provider-used"; //$NON-NLS-1$
-    
-    private static LibraryProviderFrameworkImpl instance = null;
-    
-    private final Set<ILibraryProvider> providers;
-    private final Set<ILibraryProvider> providersReadOnly;
-    private final Map<String,ILibraryProvider> providersLookupTable;
-    
-    public LibraryProviderFrameworkImpl()
-    {
-        this.providers = new HashSet<ILibraryProvider>();
-        this.providersReadOnly = Collections.unmodifiableSet( this.providers );
-        this.providersLookupTable = new HashMap<String,ILibraryProvider>();
-        
-        readExtensions();
-    }
-    
-    public static synchronized LibraryProviderFrameworkImpl get()
-    {
-        if( instance == null )
-        {
-            instance = new LibraryProviderFrameworkImpl();
-        }
-        
-        return instance;
-    }
-    
-    public Set<ILibraryProvider> getProviders()
-    {
-        return this.providersReadOnly;
-    }
-    
-    public boolean isProviderDefined( final String id )
-    {
-        return this.providersLookupTable.containsKey( id );
-    }
-    
-    public ILibraryProvider getProvider( final String id )
-    {
-        if( ! isProviderDefined( id ) )
-        {
-            final String msg = Resources.bind( Resources.libraryProviderNotDefined, id );
-            throw new IllegalArgumentException( msg );
-        }
-        
-        return this.providersLookupTable.get( id );
-    }
-    
-    public ILibraryProvider getCurrentProvider( final IProject project,
-                                                final IProjectFacet facet )
-    {
-        final IFacetedProject fproj;
-        
-        try
-        {
-            fproj = ProjectFacetsManager.create( project );
-        }
-        catch( CoreException e )
-        {
-            throw new RuntimeException( e );
-        }
-        
-        if( ! fproj.hasProjectFacet( facet ) )
-        {
-            return null;
-        }
-        
-        String providerId = null;
-        
-        try
-        {
-            Preferences prefs = fproj.getPreferences( facet );
-            
-            if( prefs.nodeExists( PREFS_LIBPROV ) )
-            {
-                prefs = prefs.node( PREFS_LIBPROV );
-                providerId = prefs.get( PREFS_PROVIDER_ID, null );
-            }
-        }
-        catch( BackingStoreException e )
-        {
-            throw new RuntimeException( e );
-        }
-        
-        ILibraryProvider provider = null;
-        
-        if( providerId != null )
-        {
-            if( LibraryProviderFramework.isProviderDefined( providerId ) )
-            {
-                provider = LibraryProviderFramework.getProvider( providerId );
-            }
-            else
-            {
-                provider = getProvider( UNKNOWN_LIBRARY_PROVIDER );
-            }
-        }
-        else
-        {
-            provider = LegacyLibraryProviderDetectorsExtensionPoint.detect( project, facet );
-            
-            if( provider == null )
-            {
-                provider = getProvider( UNKNOWN_LIBRARY_PROVIDER );
-            }
-        }
-        
-        return provider;
-    }
-    
-    public void setCurrentProvider( final IProject project,
-                                    final IProjectFacet facet,
-                                    final ILibraryProvider provider )
-    {
-        final IFacetedProject fproj;
-        
-        try
-        {
-            fproj = ProjectFacetsManager.create( project );
-        }
-        catch( CoreException e )
-        {
-            throw new RuntimeException( e );
-        }
-        
-        try
-        {
-            Preferences prefs = fproj.getPreferences( facet ).node( PREFS_LIBPROV );
-            
-            if( provider == null )
-            {
-                prefs.removeNode();
-            }
-            else
-            {
-                prefs.put( PREFS_PROVIDER_ID, provider.getId() );
-            }
-            
-            prefs.flush();
-        }
-        catch( BackingStoreException e )
-        {
-            throw new RuntimeException( e );
-        }
-    }
-    
-    public ILibraryProvider getLastProviderUsed( final IProjectFacetVersion fv )
-    {
-        try
-        {
-            final IProjectFacet facet = fv.getProjectFacet();
-            
-            final Preferences prefs 
-                = FacetedProjectFramework.getPreferences( facet ).node( PREFS_LAST_PROVIDER_USED );
-            
-            final String providerId = prefs.get( fv.getVersionString(), null );
-            
-            if( providerId != null )
-            {
-                if( isProviderDefined( providerId ) )
-                {
-                    return getProvider( providerId );
-                }
-            }
-        }
-        catch( BackingStoreException e )
-        {
-            log( e );
-        }
-        
-        return null;
-    }
-    
-    public void setLastProviderUsed( final IProjectFacetVersion fv,
-                                     final ILibraryProvider provider )
-    {
-        try
-        {
-            final IProjectFacet facet = fv.getProjectFacet();
-            
-            final Preferences prefs 
-                = FacetedProjectFramework.getPreferences( facet ).node( PREFS_LAST_PROVIDER_USED );
-            
-            prefs.put( fv.getVersionString(), provider.getId() );
-        
-            prefs.flush();
-        }
-        catch( BackingStoreException e )
-        {
-            log( e );
-        }
-    }
-    
-    public static void reportInvalidActionType( final String type,
-                                                final String pluginId )
-    {
-        final String msg = Resources.bind( Resources.invalidActionType, type, pluginId ); 
-        log( createErrorStatus( msg ) );
-    }
-    
-    public static void reportProviderNotDefined( final String providerId,
-                                                 final String pluginId )
-    {
-        final String msg 
-            = Resources.bind( Resources.libraryProviderNotDefinedWithPlugin, providerId,
-                              pluginId );
-        
-        log( createErrorStatus( msg ) );
-    }
-    
-    private void readExtensions()
-    {
-        final IExtensionRegistry registry = Platform.getExtensionRegistry();
-        
-        final IExtensionPoint point 
-            = registry.getExtensionPoint( PLUGIN_ID, EXTENSION_POINT_ID );
-        
-        if( point == null )
-        {
-            throw new IllegalStateException();
-        }
-        
-        final List<IConfigurationElement> cfgels = new ArrayList<IConfigurationElement>();
-        
-        for( IExtension extension : point.getExtensions() )
-        {
-            for( IConfigurationElement element : extension.getConfigurationElements() )
-            {
-                cfgels.add( element );
-            }
-        }
-        
-        final Map<LibraryProvider,String> providerToBaseIdMap 
-            = new HashMap<LibraryProvider,String>();
-
-        for( IConfigurationElement element : cfgels )
-        {
-            if( ! element.getName().equals( EL_PROVIDER ) )
-            {
-                continue;
-            }
-            
-            try
-            {
-                final LibraryProvider provider = new LibraryProvider();
-                provider.setPluginId( element.getContributor().getName() );
-                
-                provider.setId( findRequiredAttribute( element, ATTR_ID ) );
-                
-                if( this.providersLookupTable.containsKey( provider.getId() ) )
-                {
-                    final String msg 
-                        = Resources.bind( Resources.libraryProviderIdAlreadyUsed, 
-                                          provider.getId() );
-                    
-                    log( createErrorStatus( msg ) );
-                    
-                    throw new InvalidExtensionException();
-                }
-                
-                final String baseProviderId = element.getAttribute( ATTR_EXTENDS );
-                
-                if( baseProviderId != null )
-                {
-                    providerToBaseIdMap.put( provider, baseProviderId.trim() );
-                }
-                
-                final String abstractAttr = element.getAttribute( ATTR_ABSTRACT );
-                
-                if( abstractAttr != null )
-                {
-                    provider.setIsAbstract( Boolean.valueOf( abstractAttr ) );
-                }
-                
-                final String hiddenAttr = element.getAttribute( ATTR_HIDDEN );
-                
-                if( hiddenAttr != null )
-                {
-                    provider.setIsHidden( Boolean.valueOf( hiddenAttr ) );
-                }
-
-                for( IConfigurationElement child : element.getChildren() )
-                {
-                    final String childName = child.getName();
-                    
-                    if( childName.equals( EL_LABEL ) )
-                    {
-                        provider.setLabel( child.getValue().trim() );
-                    }
-                    else if( childName.equals( EL_ENABLEMENT ) )
-                    {
-                        final Expression expr;
-                        
-                        try
-                        {
-                            expr = ExpressionConverter.getDefault().perform( child );
-                        }
-                        catch( CoreException e )
-                        {
-                            log( e );
-                            throw new InvalidExtensionException();
-                        }
-                        
-                        provider.setEnablementCondition( expr );
-                    }
-                    else if( childName.equals( EL_PRIORITY ) )
-                    {
-                        final String priorityString = child.getValue().trim();
-                        final int priority;
-                        
-                        try
-                        {
-                            priority = Integer.parseInt( priorityString );
-                        }
-                        catch( NumberFormatException e )
-                        {
-                            log( e );
-                            throw new InvalidExtensionException();
-                        }
-                        
-                        provider.setPriority( priority );
-                    }
-                    else if( childName.equals( EL_PARAM ) )
-                    {
-                        final String name = findRequiredAttribute( child, ATTR_NAME );
-                        
-                        String value = child.getAttribute( ATTR_VALUE );
-                        
-                        if( value == null )
-                        {
-                            value = getElementValue( child, null );
-                        }
-                        
-                        provider.addParam( name, value );
-                    }
-                    else if( childName.equals( EL_ACTION ) )
-                    {
-                        final String type = findRequiredAttribute( child, ATTR_TYPE ).toUpperCase();
-                        final LibraryProviderActionType t;
-                        
-                        try
-                        {
-                            t = LibraryProviderActionType.valueOf( type );
-                        }
-                        catch( IllegalArgumentException e )
-                        {
-                            reportInvalidActionType( type, provider.getPluginId() );
-                            throw new InvalidExtensionException();
-                        }
-                        
-                        final IConfigurationElement elConfig 
-                            = findOptionalElement( child, EL_CONFIG );
-                        
-                        final String configClassName;
-                        
-                        if( elConfig == null )
-                        {
-                            configClassName = LibraryProviderOperationConfig.class.getName();
-                        }
-                        else
-                        {
-                            configClassName = findRequiredAttribute( elConfig, ATTR_CLASS );
-                        }
-                        
-                        final IConfigurationElement elOperation 
-                            = findRequiredElement( child, EL_OPERATION );
-                        
-                        final String operationClassName 
-                            = findRequiredAttribute( elOperation, ATTR_CLASS );
-                        
-                        provider.addActionDef( t, configClassName, operationClassName );
-                    }
-                }
-                
-                if( provider != null )
-                {
-                    this.providers.add( provider );
-                    this.providersLookupTable.put( provider.getId(), provider );
-                }
-            }
-            catch( InvalidExtensionException e )
-            {
-                // Ignore and continue. The problem has already been reported to the user
-                // in the log.
-            }
-        }
-        
-        for( Map.Entry<LibraryProvider,String> entry : providerToBaseIdMap.entrySet() )
-        {
-            final LibraryProvider provider = entry.getKey();
-            final String baseProviderId = entry.getValue();
-            final ILibraryProvider baseProvider = this.providersLookupTable.get( baseProviderId );
-            
-            if( baseProvider == null )
-            {
-                reportProviderNotDefined( baseProviderId, provider.getPluginId() );
-                this.providers.remove( provider );
-                this.providersLookupTable.remove( provider.getId() );
-            }
-            else
-            {
-                provider.setBaseProvider( baseProvider );
-            }
-        }
-    }
-    
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String libraryProviderNotDefined;
-        public static String libraryProviderNotDefinedWithPlugin;
-        public static String libraryProviderIdAlreadyUsed;
-        public static String invalidActionType;
-        
-        static
-        {
-            initializeMessages( LibraryProviderFrameworkImpl.class.getName(), 
-                                Resources.class );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/internal/LibraryProviderFrameworkImpl.properties b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/internal/LibraryProviderFrameworkImpl.properties
deleted file mode 100644
index 5c7d718..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/internal/LibraryProviderFrameworkImpl.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-libraryProviderNotDefined = Library provider "{0}" is not defined.
-libraryProviderNotDefinedWithPlugin = Library provider "{0}" is not defined. This id is referenced in plugin {1}.
-libraryProviderIdAlreadyUsed = Library provider id \"{0}\" is already used by another provider.
-invalidActionType = Invalid library provider action type \"{0}\" was used in plugin {1}.
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/internal/PropertiesHost.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/internal/PropertiesHost.java
deleted file mode 100644
index a185a21..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/internal/PropertiesHost.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.libprov.internal;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.CopyOnWriteArraySet;
-
-import org.eclipse.jst.common.project.facet.core.libprov.IPropertyChangeListener;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public abstract class PropertiesHost
-{
-    private final Set<IPropertyChangeListener> globalListeners
-        = new CopyOnWriteArraySet<IPropertyChangeListener>();
-    
-    private final Map<String,Set<IPropertyChangeListener>> propertySpecificListeners 
-        = new HashMap<String,Set<IPropertyChangeListener>>();
-    
-    public void addListener( final IPropertyChangeListener listener,
-                             final String... properties )
-    {
-        if( properties.length == 0 )
-        {
-            synchronized( this.globalListeners )
-            {
-                this.globalListeners.add( listener );
-            }
-        }
-        else
-        {
-            synchronized( this.propertySpecificListeners )
-            {
-                for( String property : properties )
-                {
-                    Set<IPropertyChangeListener> list = this.propertySpecificListeners.get( property );
-                    
-                    if( list == null )
-                    {
-                        list = new CopyOnWriteArraySet<IPropertyChangeListener>();
-                        this.propertySpecificListeners.put( property, list );
-                    }
-                    
-                    list.add( listener );
-                }
-            }
-        }
-    }
-    
-    public void removeListener( final IPropertyChangeListener listener )
-    {
-        boolean globalListenerRemoveResult;
-        
-        synchronized( this.globalListeners )
-        {
-            globalListenerRemoveResult = this.globalListeners.remove( listener );
-        }
-        
-        if( globalListenerRemoveResult == false )
-        {
-            synchronized( this.propertySpecificListeners )
-            {
-                for( Set<IPropertyChangeListener> listeners : this.propertySpecificListeners.values() )
-                {
-                    listeners.remove( listener );
-                }
-            }
-        }
-    }
-    
-    protected void notifyListeners( final String property,
-                                    final Object oldValue,
-                                    final Object newValue )
-    {
-        for( IPropertyChangeListener listener : this.globalListeners )
-        {
-            listener.propertyChanged( property, oldValue, newValue );
-        }
-        
-        final Set<IPropertyChangeListener> listeners;
-        
-        synchronized( this.propertySpecificListeners )
-        {
-            listeners = this.propertySpecificListeners.get( property );
-        }
-        
-        if( listeners != null )
-        {
-            for( IPropertyChangeListener listener : listeners )
-            {
-                listener.propertyChanged( property, oldValue, newValue );
-            }
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/internal/RuntimeLibraryProviderInstallOperation.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/internal/RuntimeLibraryProviderInstallOperation.java
deleted file mode 100644
index 79cddaa..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/internal/RuntimeLibraryProviderInstallOperation.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.libprov.internal;
-
-import static org.eclipse.wst.common.project.facet.core.util.internal.ProgressMonitorUtil.beginTask;
-import static org.eclipse.wst.common.project.facet.core.util.internal.ProgressMonitorUtil.done;
-import static org.eclipse.wst.common.project.facet.core.util.internal.ProgressMonitorUtil.worked;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jst.common.project.facet.core.ClasspathHelper;
-import org.eclipse.jst.common.project.facet.core.libprov.LibraryProviderOperation;
-import org.eclipse.jst.common.project.facet.core.libprov.LibraryProviderOperationConfig;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public class RuntimeLibraryProviderInstallOperation
-
-    extends LibraryProviderOperation
-    
-{
-    public void execute( final LibraryProviderOperationConfig config,
-                         final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        beginTask( monitor, "", 1 ); //$NON-NLS-1$
-        
-        try
-        {
-            final IProjectFacetVersion fv = config.getProjectFacetVersion();
-            
-            ClasspathHelper.addClasspathEntries( config.getFacetedProject().getProject(), fv );
-            
-            worked( monitor, 1 );
-        }
-        finally
-        {
-            done( monitor );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/internal/RuntimeLibraryProviderPropertyTester.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/internal/RuntimeLibraryProviderPropertyTester.java
deleted file mode 100644
index 107ed51..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/internal/RuntimeLibraryProviderPropertyTester.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.libprov.internal;
-
-import java.util.List;
-
-import org.eclipse.core.expressions.PropertyTester;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jst.common.project.facet.core.IClasspathProvider;
-import org.eclipse.jst.common.project.facet.core.libprov.EnablementExpressionContext;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class RuntimeLibraryProviderPropertyTester
-
-    extends PropertyTester
-    
-{
-    public boolean test( final Object receiver, 
-                         final String property, 
-                         final Object[] args, 
-                         final Object value )
-    {
-        if( receiver instanceof EnablementExpressionContext )
-        {
-            final EnablementExpressionContext context = (EnablementExpressionContext) receiver;
-            final IProjectFacetVersion fv = context.getRequestingProjectFacetVersion();
-            final IRuntime runtime = context.getFacetedProject().getPrimaryRuntime();
-            
-            if( runtime != null )
-            {
-                final IClasspathProvider cpprov 
-                    = (IClasspathProvider) runtime.getAdapter( IClasspathProvider.class );
-                
-                final List<IClasspathEntry> cpentries = cpprov.getClasspathEntries( fv );
-                
-                if( cpentries != null && ! cpentries.isEmpty() )
-                {
-                    return true;
-                }
-            }
-        }
-            
-        return false;
-    }
-
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/internal/RuntimeLibraryProviderUninstallOperation.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/internal/RuntimeLibraryProviderUninstallOperation.java
deleted file mode 100644
index e451994..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/internal/RuntimeLibraryProviderUninstallOperation.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.libprov.internal;
-
-import static org.eclipse.wst.common.project.facet.core.util.internal.ProgressMonitorUtil.beginTask;
-import static org.eclipse.wst.common.project.facet.core.util.internal.ProgressMonitorUtil.done;
-import static org.eclipse.wst.common.project.facet.core.util.internal.ProgressMonitorUtil.worked;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jst.common.project.facet.core.ClasspathHelper;
-import org.eclipse.jst.common.project.facet.core.libprov.LibraryProviderOperation;
-import org.eclipse.jst.common.project.facet.core.libprov.LibraryProviderOperationConfig;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public class RuntimeLibraryProviderUninstallOperation
-
-    extends LibraryProviderOperation
-    
-{
-    public void execute( final LibraryProviderOperationConfig config,
-                         final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        beginTask( monitor, "", 1 ); //$NON-NLS-1$
-        
-        try
-        {
-            final IProjectFacetVersion fv = config.getProjectFacetVersion();
-            
-            ClasspathHelper.removeClasspathEntries( config.getFacetedProject().getProject(), fv );
-            
-            worked( monitor, 1 );
-        }
-        finally
-        {
-            done( monitor );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/internal/UnknownLibraryProviderInstallOperation.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/internal/UnknownLibraryProviderInstallOperation.java
deleted file mode 100644
index 63f0341..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/internal/UnknownLibraryProviderInstallOperation.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.libprov.internal;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jst.common.project.facet.core.libprov.LibraryProviderOperation;
-import org.eclipse.jst.common.project.facet.core.libprov.LibraryProviderOperationConfig;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class UnknownLibraryProviderInstallOperation
-
-    extends LibraryProviderOperation
-    
-{
-    public void execute( final LibraryProviderOperationConfig config,
-                         final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        // This is never expected to be called...
-        throw new IllegalStateException();
-    }
-    
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/osgi/BundleReference.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/osgi/BundleReference.java
deleted file mode 100644
index 52ffdfa..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/osgi/BundleReference.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.libprov.osgi;
-
-import java.util.SortedMap;
-import java.util.TreeMap;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.Version;
-
-/**
- * @since 1.4
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class BundleReference
-{
-    private String id;
-    private VersionRange versionRange;
-    
-    public BundleReference( final String id,
-                            final VersionRange versionRange )
-    {
-        this.id = id;
-        this.versionRange = versionRange;
-    }
-    
-    public String getBundleId()
-    {
-        return this.id;
-    }
-    
-    public VersionRange getVersionRange()
-    {
-        return this.versionRange;
-    }
-    
-    public boolean isResolvable()
-    {
-        return ( getBundles() != null );
-    }
-    
-    public Bundle getBundle()
-    {
-        final Bundle[] bundles = getBundles();
-        
-        if( bundles == null )
-        {
-            return null;
-        }
-        
-        final SortedMap<Version,Bundle> bundlesByVersion = new TreeMap<Version,Bundle>(); 
-        
-        for( Bundle bundle : bundles )
-        {
-            final Version version = getBundleVersion( bundle );
-            
-            if( version != null )
-            {
-                bundlesByVersion.put( version, bundle );
-            }
-        }
-        
-        if( bundlesByVersion.isEmpty() )
-        {
-            return null;
-        }
-        else
-        {
-            return bundlesByVersion.get( bundlesByVersion.lastKey() );
-        }
-    }
-    
-    private Bundle[] getBundles()
-    {
-        return Platform.getBundles( this.id, this.versionRange == null ? null : this.versionRange.toString() );
-    }
-    
-    private static Version getBundleVersion( final Bundle bundle )
-    {
-        final String versionString = (String) bundle.getHeaders().get( "Bundle-Version" ); //$NON-NLS-1$
-        return versionString == null ? null : new Version( versionString );
-    }
-    
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/osgi/OsgiBundlesContainer.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/osgi/OsgiBundlesContainer.java
deleted file mode 100644
index 59f67ba..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/osgi/OsgiBundlesContainer.java
+++ /dev/null
@@ -1,443 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.libprov.osgi;
-
-import static org.eclipse.jst.common.project.facet.core.JavaFacet.isJavaProject;
-import static org.eclipse.jst.common.project.facet.core.internal.FacetedProjectFrameworkJavaPlugin.log;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jdt.core.IClasspathAttribute;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.osgi.service.prefs.BackingStoreException;
-import org.osgi.service.prefs.Preferences;
-
-/**
- * @since 1.4
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class OsgiBundlesContainer
-{
-    public static final String CONTAINER_ID = "eclipse.fproj.jdt.libprov.osgi"; //$NON-NLS-1$
-    public static final IPath CONTAINER_PATH = new Path( CONTAINER_ID );
-    
-    private static final String PREFS_OSGI_BUNDLES_CONTAINER = "osgi-bundles-container"; //$NON-NLS-1$
-    private static final String PREFS_BUNDLES = "bundles"; //$NON-NLS-1$
-    private static final String PREFS_LABEL = "label"; //$NON-NLS-1$
-    
-    public static boolean isOnClasspath( final IProject project,
-                                         final IProjectFacet facet )
-    
-        throws CoreException
-        
-    {
-        if( isJavaProject( project ) )
-        {
-            return isOnClasspath( JavaCore.create( project ), facet );
-        }
-        
-        return false;
-    }
-    
-    public static boolean isOnClasspath( final IJavaProject project,
-                                         final IProjectFacet facet )
-    
-        throws CoreException
-        
-    {
-        final IClasspathEntry[] cp = project.getRawClasspath();
-        
-        for( IClasspathEntry cpe : cp )
-        {
-            if( isOsgiBundlesContainer( cpe ) )
-            {
-                final String fid = cpe.getPath().segment( 1 );
-                return facet.getId().equals( fid );
-            }
-        }
-        
-        return false;
-    }
-    
-    public static void addToClasspath( final IProject project,
-                                       final IProjectFacet facet )
-    
-        throws CoreException
-        
-    {
-        addToClasspath( project, facet, null );
-    }
-
-    public static void addToClasspath( final IProject project,
-                                       final IProjectFacet facet,
-                                       final IClasspathAttribute[] attributes )
-    
-        throws CoreException
-        
-    {
-        if( isJavaProject( project ) )
-        {
-            addToClasspath( JavaCore.create( project ), facet, attributes );
-        }
-    }
-
-    public static void addToClasspath( final IJavaProject project,
-                                       final IProjectFacet facet )
-    
-        throws CoreException
-        
-    {
-        addToClasspath( project, facet, null );
-    }
-    
-    public static void addToClasspath( final IJavaProject project,
-                                       final IProjectFacet facet,
-                                       final IClasspathAttribute[] attributes )
-    
-        throws CoreException
-        
-    {
-        if( ! isOnClasspath( project, facet ) )
-        {
-            final IClasspathEntry[] oldcp = project.getRawClasspath();
-            final IClasspathEntry[] newcp = new IClasspathEntry[ oldcp.length + 1 ];
-            System.arraycopy( oldcp, 0, newcp, 0, oldcp.length );
-            final IPath path = CONTAINER_PATH.append( facet.getId() );
-            final IClasspathAttribute[] attrs = ( attributes != null ? attributes : new IClasspathAttribute[ 0 ] );
-            newcp[ newcp.length - 1 ] = JavaCore.newContainerEntry( path, null, attrs, false );
-            
-            project.setRawClasspath( newcp, null );
-        }
-    }
-    
-    public static void removeFromClasspath( final IProject project,
-                                            final IProjectFacet facet )
-    
-        throws CoreException
-        
-    {
-        if( isJavaProject( project ) )
-        {
-            removeFromClasspath( JavaCore.create( project ), facet );
-        }
-    }
-    
-    public static void removeFromClasspath( final IJavaProject project,
-                                            final IProjectFacet facet )
-    
-        throws CoreException
-        
-    {
-        final IClasspathEntry[] oldcp = project.getRawClasspath();
-        
-        for( int i = 0; i < oldcp.length; i++ )
-        {
-            final IClasspathEntry cpe = oldcp[ i ];
-            
-            if( isOsgiBundlesContainer( cpe ) )
-            {
-                final String fid = cpe.getPath().segment( 1 );
-                
-                if( facet.getId().equals( fid ) )
-                {
-                    final IClasspathEntry[] newcp = new IClasspathEntry[ oldcp.length - 1 ];
-                    System.arraycopy( oldcp, 0, newcp, 0, i );
-                    System.arraycopy( oldcp, i + 1, newcp, i, oldcp.length - i - 1 );
-                    
-                    project.setRawClasspath( newcp, null );
-                    
-                    return;
-                }
-            }
-        }
-    }
-    
-    public static boolean isOsgiBundlesContainer( final IClasspathEntry cpe )
-    {
-        final IPath path = cpe.getPath();
-        return path.segmentCount() >= 2 && path.segment( 0 ).equals( CONTAINER_ID );
-    }
-    
-    public static List<BundleReference> getBundleReferences( final IProject project,
-                                                             final IProjectFacet facet )
-    {
-        IFacetedProject fproj = null;
-        
-        try
-        {
-            fproj = ProjectFacetsManager.create( project );
-        }
-        catch( CoreException e )
-        {
-            log( e );
-        }
-        
-        if( fproj == null )
-        {
-            return Collections.emptyList();
-        }
-        else
-        {
-            return getBundleReferences( fproj, facet );
-        }
-    }
-    
-    public static List<BundleReference> getBundleReferences( final IFacetedProject project,
-                                                             final IProjectFacet facet )
-    {
-        final List<BundleReference> bundleReferences = new ArrayList<BundleReference>();
-        
-        try
-        {
-            Preferences prefs = project.getPreferences( facet );
-            
-            if( prefs.nodeExists( PREFS_OSGI_BUNDLES_CONTAINER ) )
-            {
-                prefs = prefs.node( PREFS_OSGI_BUNDLES_CONTAINER );
-                
-                final String unparsedMetadata = prefs.get( PREFS_BUNDLES, null );
-                
-                if( unparsedMetadata != null )
-                {
-                    for( String unparsedBundleReference : unparsedMetadata.split( ";" ) ) //$NON-NLS-1$
-                    {
-                        bundleReferences.add( parseBundleReference( unparsedBundleReference ) );
-                    }
-                }
-            }
-        }
-        catch( BackingStoreException e )
-        {
-            log( e );
-        }
-        
-        return bundleReferences;
-    }
-    
-    public static void setBundleReferences( final IProject project,
-                                            final IProjectFacet facet,
-                                            final List<BundleReference> bundleReferences )
-    {
-        IFacetedProject fproj = null;
-        
-        try
-        {
-            fproj = ProjectFacetsManager.create( project );
-        }
-        catch( CoreException e )
-        {
-            log( e );
-        }
-        
-        if( fproj != null )
-        {
-            setBundleReferences( fproj, facet, bundleReferences );
-        }
-    }
-    
-    public static void setBundleReferences( final IFacetedProject project,
-                                            final IProjectFacet facet,
-                                            final List<BundleReference> bundleReferences )
-    {
-        try
-        {
-            Preferences prefs = project.getPreferences( facet );
-            
-            if( bundleReferences == null || bundleReferences.isEmpty() )
-            {
-                prefs.removeNode();
-            }
-            else
-            {
-                final StringBuilder buf = new StringBuilder();
-                
-                for( BundleReference bundleReference : bundleReferences )
-                {
-                    if( buf.length() > 0 )
-                    {
-                        buf.append( ';' );
-                    }
-                    
-                    buf.append( convert( bundleReference ) );
-                }
-                
-                prefs = prefs.node( PREFS_OSGI_BUNDLES_CONTAINER );
-                prefs.put( PREFS_BUNDLES, buf.toString() );
-            }
-            
-            prefs.flush();
-        }
-        catch( BackingStoreException e )
-        {
-            log( e );
-        }
-    }
-    
-    public static BundleReference parseBundleReference( final String bundleReferenceString )
-    {
-        String bundleId;
-        VersionRange versionRange;
-        
-        final int colon = bundleReferenceString.indexOf( ':' );
-        
-        if( colon == -1 )
-        {
-            bundleId = bundleReferenceString;
-            versionRange = null;
-        }
-        else
-        {
-            bundleId = bundleReferenceString.substring( 0, colon );
-            
-            try
-            {
-                versionRange = new VersionRange( bundleReferenceString.substring( colon + 1 ) );
-            }
-            catch( IllegalArgumentException e )
-            {
-                log( e );
-                versionRange = null;
-            }
-        }
-        
-        return new BundleReference( bundleId, versionRange );        
-    }
-    
-    public static String getContainerLabel( final IProject project,
-                                            final IProjectFacet facet )
-    {
-        IFacetedProject fproj = null;
-        
-        try
-        {
-            fproj = ProjectFacetsManager.create( project );
-        }
-        catch( CoreException e )
-        {
-            log( e );
-        }
-        
-        if( fproj == null )
-        {
-            return null;
-        }
-        else
-        {
-            return getContainerLabel( fproj, facet );
-        }
-    }
-    
-    public static String getContainerLabel( final IFacetedProject project,
-                                            final IProjectFacet facet )
-    {
-        String label = null;
-        
-        try
-        {
-            Preferences prefs = project.getPreferences( facet );
-            
-            if( prefs.nodeExists( PREFS_OSGI_BUNDLES_CONTAINER ) )
-            {
-                prefs = prefs.node( PREFS_OSGI_BUNDLES_CONTAINER );
-                label = prefs.get( PREFS_LABEL, (String) null );
-            }
-        }
-        catch( BackingStoreException e )
-        {
-            log( e );
-        }
-        
-        return label;
-    }
-    
-    public static void setContainerLabel( final IProject project,
-                                          final IProjectFacet facet,
-                                          final String label )
-    {
-        IFacetedProject fproj = null;
-        
-        try
-        {
-            fproj = ProjectFacetsManager.create( project );
-        }
-        catch( CoreException e )
-        {
-            log( e );
-        }
-        
-        if( fproj != null )
-        {
-            setContainerLabel( fproj, facet, label );
-        }
-    }
-    
-    public static void setContainerLabel( final IFacetedProject project,
-                                          final IProjectFacet facet,
-                                          final String label )
-    {
-        try
-        {
-            Preferences prefs = project.getPreferences( facet );
-            prefs = prefs.node( PREFS_OSGI_BUNDLES_CONTAINER );
-            
-            if( label == null )
-            {
-                prefs.remove( PREFS_LABEL );
-            }
-            else
-            {
-                prefs.put( PREFS_LABEL, label );
-            }
-            
-            prefs.flush();
-        }
-        catch( BackingStoreException e )
-        {
-            log( e );
-        }
-    }
-    
-    private static String convert( final BundleReference bundleReference )
-    {
-        final StringBuilder buf = new StringBuilder();
-        
-        buf.append( bundleReference.getBundleId() );
-        
-        if( bundleReference.getVersionRange() != null )
-        {
-            buf.append( ':' );
-            buf.append( bundleReference.getVersionRange().toString() );
-        }
-        
-        return buf.toString();
-    }
-    
-    /**
-     * This class should not be instantiated.
-     */
-
-    private OsgiBundlesContainer() {}
-    
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/osgi/OsgiBundlesLibraryProviderInstallOperation.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/osgi/OsgiBundlesLibraryProviderInstallOperation.java
deleted file mode 100644
index be77471..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/osgi/OsgiBundlesLibraryProviderInstallOperation.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.libprov.osgi;
-
-import static org.eclipse.jst.common.project.facet.core.libprov.osgi.OsgiBundlesContainer.addToClasspath;
-import static org.eclipse.jst.common.project.facet.core.libprov.osgi.OsgiBundlesContainer.isOnClasspath;
-import static org.eclipse.jst.common.project.facet.core.libprov.osgi.OsgiBundlesContainer.*;
-import static org.eclipse.wst.common.project.facet.core.util.internal.ProgressMonitorUtil.beginTask;
-import static org.eclipse.wst.common.project.facet.core.util.internal.ProgressMonitorUtil.done;
-import static org.eclipse.wst.common.project.facet.core.util.internal.ProgressMonitorUtil.worked;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jst.common.project.facet.core.libprov.LibraryProviderOperation;
-import org.eclipse.jst.common.project.facet.core.libprov.LibraryProviderOperationConfig;
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectWorkingCopy;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-
-
-/**
- * @since 1.4
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public class OsgiBundlesLibraryProviderInstallOperation
-
-    extends LibraryProviderOperation
-
-{
-    public void execute( final LibraryProviderOperationConfig config,
-                         final IProgressMonitor monitor )
-
-        throws CoreException
-
-    {
-        beginTask( monitor, "", 1 ); //$NON-NLS-1$
-
-        try
-        {
-            final OsgiBundlesLibraryProviderInstallOperationConfig cfg
-                = (OsgiBundlesLibraryProviderInstallOperationConfig) config;
-            
-            IProject project = cfg.getFacetedProject().getProject();
-            
-            if( project == null ) // TODO: Galileo - Remove this workaround.
-            {
-                final String name = ( (IFacetedProjectWorkingCopy) config.getFacetedProject() ).getProjectName();
-                project = ResourcesPlugin.getWorkspace().getRoot().getProject( name );
-            }
-            
-            final IProjectFacet facet = cfg.getProjectFacet();
-            
-            setBundleReferences( project, facet, cfg.getBundleReferences() );
-            setContainerLabel( project, facet, cfg.getContainerLabel() );
-            
-            if( ! isOnClasspath( project, facet ) )
-            {
-                addToClasspath( project, facet, cfg.getClasspathAttributes() );
-            }
-
-        	worked( monitor, 1 );
-        }
-        finally
-        {
-            done( monitor );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/osgi/OsgiBundlesLibraryProviderInstallOperationConfig.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/osgi/OsgiBundlesLibraryProviderInstallOperationConfig.java
deleted file mode 100644
index 3c778ba..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/osgi/OsgiBundlesLibraryProviderInstallOperationConfig.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.libprov.osgi;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jdt.core.IClasspathAttribute;
-import org.eclipse.jst.common.project.facet.core.internal.FacetedProjectFrameworkJavaPlugin;
-import org.eclipse.jst.common.project.facet.core.libprov.ILibraryProvider;
-import org.eclipse.jst.common.project.facet.core.libprov.LibraryProviderOperationConfig;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectBase;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * @since 1.4
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public class OsgiBundlesLibraryProviderInstallOperationConfig
-
-	extends LibraryProviderOperationConfig
-    
-{
-    private static final String PARAM_CONTAINER_LABEL = "container.label"; //$NON-NLS-1$
-    private static final String PARAM_BUNDLE = "bundle."; //$NON-NLS-1$
-    
-    private String containerLabelOverride;
-    private List<BundleReference> bundleReferences;
-    private List<BundleReference> bundleReferencesReadOnly;
-
-    public OsgiBundlesLibraryProviderInstallOperationConfig()
-    {
-        this.containerLabelOverride = null;
-        this.bundleReferences = new ArrayList<BundleReference>();
-        this.bundleReferencesReadOnly = Collections.unmodifiableList( this.bundleReferences );
-    }
-    
-    @Override
-    public synchronized void init( final IFacetedProjectBase fproj,
-                                   final IProjectFacetVersion fv,
-                                   final ILibraryProvider provider )
-    {
-        super.init( fproj, fv, provider );
-        
-        this.containerLabelOverride = provider.getParams().get( PARAM_CONTAINER_LABEL );
-        this.bundleReferences.addAll( getBundleReferences( provider ) );
-    }
-    
-    public List<BundleReference> getBundleReferences()
-    {
-        return this.bundleReferencesReadOnly;
-    }
-    
-    public static List<BundleReference> getBundleReferences( final ILibraryProvider provider )
-    {
-        final List<BundleReference> bundleReferences = new ArrayList<BundleReference>();
-        final Map<String,String> params = provider.getParams();
-        String unparsedBundleReference;
-        
-        for( int i = 0; ( unparsedBundleReference = params.get( PARAM_BUNDLE + String.valueOf( i ) ) ) != null; i++ )
-        {
-            bundleReferences.add( OsgiBundlesContainer.parseBundleReference( unparsedBundleReference ) );
-        }
-        
-        return bundleReferences;
-    }
-    
-    public IClasspathAttribute[] getClasspathAttributes()
-    {
-        return null;
-    }
-    
-    public String getContainerLabel()
-    {
-        return this.containerLabelOverride;
-    }
-
-    @Override
-    public IStatus validate()
-    {
-        IStatus status = super.validate();
-        
-        for( BundleReference bundleReference : this.bundleReferences )
-        {
-            if( ! bundleReference.isResolvable() )
-            {
-                final String msg;
-                final String bundleId = bundleReference.getBundleId();
-                final VersionRange versionRange = bundleReference.getVersionRange();
-                
-                if( versionRange == null )
-                {
-                    msg = NLS.bind( Resources.bunldeCannotBeResolvedNoVersion, bundleId ); 
-                }
-                else
-                {
-                    msg = NLS.bind( Resources.bundleCannotBeResolved, bundleId, versionRange.toString() );
-                }
-                
-                status = new Status( IStatus.ERROR, FacetedProjectFrameworkJavaPlugin.PLUGIN_ID, msg );
-                
-                break;
-            }
-        }
-        
-        return status;
-    }
-    
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String bundleCannotBeResolved;
-        public static String bunldeCannotBeResolvedNoVersion;
-        
-        static
-        {
-            initializeMessages( OsgiBundlesLibraryProviderInstallOperationConfig.class.getName(), 
-                                Resources.class );
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/osgi/OsgiBundlesLibraryProviderInstallOperationConfig.properties b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/osgi/OsgiBundlesLibraryProviderInstallOperationConfig.properties
deleted file mode 100644
index 116d69b..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/osgi/OsgiBundlesLibraryProviderInstallOperationConfig.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-bundleCannotBeResolved = Bundle {0} with version {1} cannot be found.
-bunldeCannotBeResolvedNoVersion = Bundle {0} cannot be found.
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/osgi/OsgiBundlesLibraryProviderUninstallOperation.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/osgi/OsgiBundlesLibraryProviderUninstallOperation.java
deleted file mode 100644
index 0e5475f..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/osgi/OsgiBundlesLibraryProviderUninstallOperation.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.libprov.osgi;
-
-import static org.eclipse.jst.common.project.facet.core.libprov.osgi.OsgiBundlesContainer.removeFromClasspath;
-import static org.eclipse.jst.common.project.facet.core.libprov.osgi.OsgiBundlesContainer.setBundleReferences;
-import static org.eclipse.jst.common.project.facet.core.libprov.osgi.OsgiBundlesContainer.setContainerLabel;
-import static org.eclipse.wst.common.project.facet.core.util.internal.ProgressMonitorUtil.beginTask;
-import static org.eclipse.wst.common.project.facet.core.util.internal.ProgressMonitorUtil.done;
-import static org.eclipse.wst.common.project.facet.core.util.internal.ProgressMonitorUtil.worked;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jst.common.project.facet.core.libprov.LibraryProviderOperation;
-import org.eclipse.jst.common.project.facet.core.libprov.LibraryProviderOperationConfig;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-
-/**
- * @since 1.4
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public class OsgiBundlesLibraryProviderUninstallOperation
-
-    extends LibraryProviderOperation
-
-{
-    public void execute( final LibraryProviderOperationConfig config,
-                         final IProgressMonitor monitor )
-
-        throws CoreException
-
-    {
-        beginTask( monitor, "", 1 ); //$NON-NLS-1$
-
-        try
-        {
-            final IProject project = config.getFacetedProject().getProject();
-            final IProjectFacet facet = config.getProjectFacet();
-            
-            removeFromClasspath( project, facet );
-            setBundleReferences( project, facet, null );
-            setContainerLabel( project, facet, null );
-
-            worked( monitor, 1 );
-        }
-        finally
-        {
-            done( monitor );
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/osgi/internal/OsgiBundlesContainerImpl.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/osgi/internal/OsgiBundlesContainerImpl.java
deleted file mode 100644
index 921b49a..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/osgi/internal/OsgiBundlesContainerImpl.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.libprov.osgi.internal;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-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.Path;
-import org.eclipse.jdt.core.ClasspathContainerInitializer;
-import org.eclipse.jdt.core.IClasspathContainer;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jst.common.project.facet.core.libprov.osgi.BundleReference;
-import org.eclipse.jst.common.project.facet.core.libprov.osgi.OsgiBundlesContainer;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.osgi.framework.Bundle;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class OsgiBundlesContainerImpl
-
-    implements IClasspathContainer
-    
-{
-    private final IPath containerPath;
-    private final IProjectFacet facet;
-    private final IClasspathEntry[] entries;
-    private final String description;
-    
-    private OsgiBundlesContainerImpl( final IJavaProject project,
-                                      final IPath containerPath )
-    {
-        this.containerPath = containerPath;
-        
-        final String fid = containerPath.segment( 1 );
-        this.facet = ProjectFacetsManager.getProjectFacet( fid );
-        
-        final IProject pj = project.getProject();
-        
-        String desc = OsgiBundlesContainer.getContainerLabel( pj, this.facet );
-        
-        if( desc == null )
-        {
-            desc = NLS.bind( Resources.containerLabel, this.facet.getLabel() );
-        }
-        
-        this.description = desc;
-
-        final List<BundleReference> bundleReferences 
-            = OsgiBundlesContainer.getBundleReferences( pj, this.facet );
-        
-        final List<IClasspathEntry> entriesList = new ArrayList<IClasspathEntry>();
-        
-        for( BundleReference bundleReference : bundleReferences )
-        {
-            final Bundle bundle = bundleReference.getBundle();
-            
-            if( bundle != null )
-            {
-                File file = null;
-                
-                try
-                {
-                    file = FileLocator.getBundleFile( bundle );
-                }
-                catch( IOException e ) {}
-                
-                if( file != null )
-                {
-                    entriesList.add( JavaCore.newLibraryEntry( new Path( file.getPath() ), null, null ) );
-                }
-            }
-        }
-        
-        this.entries = entriesList.toArray( new IClasspathEntry[ entriesList.size() ] );
-    }
-    
-    public IClasspathEntry[] getClasspathEntries()
-    {
-        return this.entries;
-    }
-
-    public String getDescription()
-    {
-        return this.description;
-    }
-
-    public int getKind()
-    {
-    	return K_APPLICATION;
-    }
-
-    public IPath getPath()
-    {
-        return this.containerPath;
-    }
-    
-    public boolean equals( final Object obj )
-    {
-        if( ! ( obj instanceof OsgiBundlesContainerImpl ) )
-        {
-            return false;
-        }
-        else
-        {
-            return this.entries.equals( ( (OsgiBundlesContainerImpl) obj ).entries );
-        }
-    }
-    
-    public static final class Initializer
-    
-        extends ClasspathContainerInitializer
-        
-    {
-        @Override
-        public void initialize( final IPath containerPath,
-                                final IJavaProject project )
-        
-            throws CoreException
-            
-        {
-            final OsgiBundlesContainerImpl container 
-                = new OsgiBundlesContainerImpl( project, containerPath );
-            
-            JavaCore.setClasspathContainer( containerPath, new IJavaProject[] { project },
-                                            new IClasspathContainer[] { container }, null );
-        }
-    }
-    
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String containerLabel;
-        
-        static
-        {
-            initializeMessages( OsgiBundlesContainerImpl.class.getName(), 
-                                Resources.class );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/osgi/internal/OsgiBundlesContainerImpl.properties b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/osgi/internal/OsgiBundlesContainerImpl.properties
deleted file mode 100644
index cc6a4cf..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/osgi/internal/OsgiBundlesContainerImpl.properties
+++ /dev/null
@@ -1 +0,0 @@
-containerLabel = OSGi Bundles ({0})
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/osgi/internal/OsgiBundlesLibraryProviderResolvablePropertyTester.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/osgi/internal/OsgiBundlesLibraryProviderResolvablePropertyTester.java
deleted file mode 100644
index b78eb79..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/osgi/internal/OsgiBundlesLibraryProviderResolvablePropertyTester.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.libprov.osgi.internal;
-
-import static org.eclipse.jst.common.project.facet.core.libprov.osgi.OsgiBundlesLibraryProviderInstallOperationConfig.getBundleReferences;
-
-import org.eclipse.core.expressions.PropertyTester;
-import org.eclipse.jst.common.project.facet.core.libprov.EnablementExpressionContext;
-import org.eclipse.jst.common.project.facet.core.libprov.ILibraryProvider;
-import org.eclipse.jst.common.project.facet.core.libprov.osgi.BundleReference;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class OsgiBundlesLibraryProviderResolvablePropertyTester
-
-    extends PropertyTester
-    
-{
-    public boolean test( final Object receiver, 
-                         final String property, 
-                         final Object[] args, 
-                         final Object value )
-    {
-        if( receiver instanceof EnablementExpressionContext )
-        {
-            final EnablementExpressionContext context = (EnablementExpressionContext) receiver;
-            return test( context.getLibraryProvider(), value );
-        }
-        else if( receiver instanceof ILibraryProvider )
-        {
-            return test( (ILibraryProvider) receiver, value );
-        }
-            
-        return false;
-    }
-    
-    private boolean test( final ILibraryProvider provider,
-                          final Object value )
-    {
-        boolean isResolvable = true;
-        
-        for( BundleReference bundleReference : getBundleReferences( provider ) )
-        {
-            if( ! bundleReference.isResolvable() )
-            {
-                isResolvable = false;
-                break;
-            }
-        }
-        
-        if( value instanceof Boolean )
-        {
-            return value.equals( isResolvable );
-        }
-        
-        return false;
-    }
-
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/user/KeyClassesValidator.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/user/KeyClassesValidator.java
deleted file mode 100644
index 9d9967d..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/user/KeyClassesValidator.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.libprov.user;
-
-import static org.eclipse.jst.common.project.facet.core.internal.FacetedProjectFrameworkJavaPlugin.PLUGIN_ID;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.osgi.util.NLS;
-
-/**
- * An implementation of {@link UserLibraryValidator} that checks for presence of key classes in
- * the selected libraries. Validation fails if one or more of the key classes are not found. This
- * validator can be used as is or subclassed.
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- * @since 1.4
- */
-
-public class KeyClassesValidator
-
-    extends UserLibraryValidator
-    
-{
-    private final Set<String> classFileNames = new HashSet<String>();
-    private final Map<String,String> classFileNameToClassName = new HashMap<String,String>();
-
-    @Override
-    public void init( final List<String> params )
-    {
-        for( String className : params )
-        {
-            final StringBuilder buf = new StringBuilder();
-            
-            for( int i = 0, n = className.length(); i < n; i++ )
-            {
-                final char ch = className.charAt( i );
-                
-                if( ch == '.' )
-                {
-                    buf.append( '/' );
-                }
-                else
-                {
-                    buf.append( ch );
-                }
-            }
-            
-            buf.append( ".class" ); //$NON-NLS-1$
-            
-            final String classFileName = buf.toString();
-            this.classFileNames.add( classFileName );
-            this.classFileNameToClassName.put( classFileName, className );
-        }
-    }
-
-    @Override
-    public IStatus validate( final UserLibraryProviderInstallOperationConfig config )
-    {
-        final Map<String,Integer> classAppearanceCounts = new HashMap<String,Integer>();
-        
-        for( String classFileName : this.classFileNames )
-        {
-            classAppearanceCounts.put( classFileName, 0 );
-        }
-        
-        for( IClasspathEntry cpe : config.resolve() )
-        {
-            if( cpe.getEntryKind() == IClasspathEntry.CPE_LIBRARY )
-            {
-                final File file = cpe.getPath().toFile();
-                
-                if( file.exists() )
-                {
-                    ZipFile zip = null;
-                    
-                    try
-                    {
-                        zip = new ZipFile( file );
-                        
-                        for( Enumeration<? extends ZipEntry> itr = zip.entries(); itr.hasMoreElements(); )
-                        {
-                            final ZipEntry zipEntry = itr.nextElement();
-                            final String name = zipEntry.getName();
-                            
-                            Integer count = classAppearanceCounts.get( name );
-                            
-                            if( count != null )
-                            {
-                                classAppearanceCounts.put( name, count + 1 );
-                            }
-                        }
-                    }
-                    catch( IOException e )
-                    {
-                        
-                    }
-                    finally
-                    {
-                        if( zip != null )
-                        {
-                            try
-                            {
-                                zip.close();
-                            }
-                            catch( IOException e ) {}
-                        }
-                    }
-                }
-            }
-        }
-        
-        for( Map.Entry<String,Integer> entry : classAppearanceCounts.entrySet() )
-        {
-            final int count = entry.getValue();
-            
-            if( count != 1 )
-            {
-                final String classFileName = entry.getKey();
-                final String className = this.classFileNameToClassName.get( classFileName );
-                final String message;
-                
-                if( count == 0 )
-                {
-                    message = Resources.bind( Resources.classNotFound, className );
-                }
-                else
-                {
-                    message = Resources.bind( Resources.classPresentMultipleTimes, className );
-                }
-                
-                return new Status( IStatus.ERROR, PLUGIN_ID, message );
-            }
-        }
-        
-        return Status.OK_STATUS;
-    }
-    
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String classNotFound;
-        public static String classPresentMultipleTimes;
-        
-        static
-        {
-            initializeMessages( KeyClassesValidator.class.getName(), 
-                                Resources.class );
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/user/KeyClassesValidator.properties b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/user/KeyClassesValidator.properties
deleted file mode 100644
index 492def7..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/user/KeyClassesValidator.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-classNotFound = Required class {0} does not exist in selected libraries.
-classPresentMultipleTimes = Found multiple versions of the required class {0}. 
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/user/UserLibraryProviderInstallOperation.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/user/UserLibraryProviderInstallOperation.java
deleted file mode 100644
index b79bd85..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/user/UserLibraryProviderInstallOperation.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.libprov.user;
-
-import static org.eclipse.jst.common.project.facet.core.internal.FacetedProjectFrameworkJavaPlugin.log;
-import static org.eclipse.jst.common.project.facet.core.libprov.user.UserLibraryProviderInstallOperationConfig.PREFS_LAST_USED_LIBRARIES;
-import static org.eclipse.wst.common.project.facet.core.util.internal.ProgressMonitorUtil.beginTask;
-import static org.eclipse.wst.common.project.facet.core.util.internal.ProgressMonitorUtil.done;
-import static org.eclipse.wst.common.project.facet.core.util.internal.ProgressMonitorUtil.worked;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jst.common.project.facet.core.internal.ClasspathUtil;
-import org.eclipse.jst.common.project.facet.core.libprov.LibraryProviderOperation;
-import org.eclipse.jst.common.project.facet.core.libprov.LibraryProviderOperationConfig;
-import org.eclipse.wst.common.project.facet.core.FacetedProjectFramework;
-import org.osgi.service.prefs.BackingStoreException;
-import org.osgi.service.prefs.Preferences;
-
-/**
- * The install operation corresponding to the user-library-provider that uses JDT user library facility
- * for managing libraries. This class can be subclassed by those wishing to extend the base implementation
- * supplied by the framework.
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- * @since 1.4
- */
-
-public class UserLibraryProviderInstallOperation
-
-    extends LibraryProviderOperation
-    
-{
-    /**
-     * Runs the library provider operation. Subclasses can override.
-     * 
-     * @param config the library provider operation config; will never be null
-     * @param monitor the progress monitor for status reporting and cancellation
-     * @throws CoreException if failed while executing the operation
-     */
-    
-    public void execute( final LibraryProviderOperationConfig config,
-                         final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        beginTask( monitor, "", 2 ); //$NON-NLS-1$
-        
-        try
-        {
-            final UserLibraryProviderInstallOperationConfig cfg
-                = (UserLibraryProviderInstallOperationConfig) config;
-            
-            final List<IClasspathEntry> entries = new ArrayList<IClasspathEntry>();
-            
-            for( String libraryName : cfg.getLibraryNames() )
-            {
-                entries.add( createClasspathEntry( cfg, libraryName ) );
-            }
-            
-            final IProject project = config.getFacetedProject().getProject();
-            ClasspathUtil.addClasspathEntries( project, config.getProjectFacet(), entries );
-            
-            worked( monitor, 1 );
-            
-            try
-            {
-                Preferences prefs = FacetedProjectFramework.getPreferences( cfg.getProjectFacet() );
-                
-                prefs = prefs.node( PREFS_LAST_USED_LIBRARIES );
-                prefs = prefs.node( cfg.getProjectFacetVersion().getVersionString() );
-                
-                for( String libraryName : prefs.childrenNames() )
-                {
-                    prefs.node( libraryName ).removeNode();
-                }
-                
-                for( String libraryName : cfg.getLibraryNames() )
-                {
-                    prefs.node( libraryName );
-                }
-
-                prefs.flush();
-            }
-            catch( BackingStoreException e )
-            {
-                log( e );
-            }
-            
-            worked( monitor, 2 );
-        }
-        finally
-        {
-            done( monitor );
-        }
-    }
-    
-    /**
-     * Constructs a classpath entry for the provided user library. Subclasses can override.
-     * 
-     * @param config the user library provider install operation config
-     * @param libraryName the name of a JDT user library
-     * @return the classpath entry for the provided user library
-     */
-    
-    protected IClasspathEntry createClasspathEntry( final UserLibraryProviderInstallOperationConfig config,
-                                                    final String libraryName )
-    {
-        final IPath containerPath = new Path( JavaCore.USER_LIBRARY_CONTAINER_ID ).append( libraryName );
-        return JavaCore.newContainerEntry( containerPath );
-    }
-    
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/user/UserLibraryProviderInstallOperationConfig.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/user/UserLibraryProviderInstallOperationConfig.java
deleted file mode 100644
index 3bce5cc..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/user/UserLibraryProviderInstallOperationConfig.java
+++ /dev/null
@@ -1,359 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.libprov.user;
-
-import static org.eclipse.jst.common.project.facet.core.internal.FacetedProjectFrameworkJavaPlugin.createErrorStatus;
-import static org.eclipse.jst.common.project.facet.core.internal.FacetedProjectFrameworkJavaPlugin.log;
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.instantiate;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.internal.core.JavaModelManager;
-import org.eclipse.jdt.internal.core.UserLibrary;
-import org.eclipse.jdt.internal.core.UserLibraryManager;
-import org.eclipse.jst.common.project.facet.core.internal.ClasspathUtil;
-import org.eclipse.jst.common.project.facet.core.libprov.ILibraryProvider;
-import org.eclipse.jst.common.project.facet.core.libprov.LibraryProviderFramework;
-import org.eclipse.jst.common.project.facet.core.libprov.LibraryProviderInstallOperationConfig;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.FacetedProjectFramework;
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectBase;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.osgi.service.prefs.BackingStoreException;
-import org.osgi.service.prefs.Preferences;
-
-/**
- * The install operation config corresponding to the user-library-provider that uses JDT user library facility
- * for managing libraries. This class can be subclassed by those wishing to extend the base implementation
- * supplied by the framework.
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- * @since 1.4
- */
-
-@SuppressWarnings( "restriction" )
-
-public class UserLibraryProviderInstallOperationConfig
-
-    extends LibraryProviderInstallOperationConfig
-    
-{
-    private static final String CLASS_NAME 
-        = UserLibraryProviderInstallOperationConfig.class.getName();
-    
-    /**
-     * The preferences path (in the workspace-level facet preferences) where information about
-     * user libraries that were last used for a particular facet are stored. Beneath this path,
-     * content is organized by facet version.
-     */
-    
-    public static final String PREFS_LAST_USED_LIBRARIES
-        = "user.library.provider/last.used.libraries"; //$NON-NLS-1$
-
-    /**
-     * The property corresponding to the list of selected user libraries.
-     */
-    
-    public static final String PROP_LIBRARY_NAMES 
-        = CLASS_NAME + ".LIBRARY_NAMES"; //$NON-NLS-1$
-    
-    private static final String PARAM_VALIDATOR = "validator"; //$NON-NLS-1$
-    private static final String PARAM_VALIDATOR_PARAM = "validator.param"; //$NON-NLS-1$
-
-    private List<String> libraryNames;
-    private List<String> libraryNamesReadOnly;
-    private UserLibraryValidator validator;
-    
-    /**
-     * Constructs the user library provider install operation config.
-     */
-    
-    public UserLibraryProviderInstallOperationConfig()
-    {
-        this.libraryNames = Collections.emptyList();
-        this.libraryNamesReadOnly = Collections.emptyList();
-        this.validator = null;
-    }
-
-    /**
-     * Initializes the operation config. This method is called soon after the provider
-     * is instantiated. Extenders can override in order to add to the initialization, but
-     * have make sure to forward the init call up the inheritance chain.
-     * 
-     * @param fpj the faceted project (or a working copy)
-     * @param fv the project facet that is making the request for libraries
-     * @param provider the library provider (useful if the same operation config class
-     *   is re-used between multiple providers)
-     */
-    
-    @Override
-    public synchronized void init( final IFacetedProjectBase fproj,
-                                   final IProjectFacetVersion fv,
-                                   final ILibraryProvider provider )
-    {
-        super.init( fproj, fv, provider );
-        
-        final Map<String,String> params = provider.getParams();
-        final String validatorClassName = params.get( PARAM_VALIDATOR );
-        
-        if( validatorClassName != null )
-        {
-            this.validator = instantiate( provider.getPluginId(), validatorClassName, UserLibraryValidator.class );
-            
-            if( this.validator != null )
-            {
-                final List<String> keyClassNames = new ArrayList<String>();
-                
-                int i = 0; 
-                String paramName = PARAM_VALIDATOR_PARAM + "." + String.valueOf( i ); //$NON-NLS-1$
-                String paramValue = params.get( paramName );
-                
-                while( paramValue != null )
-                {
-                    keyClassNames.add( paramValue );
-    
-                    i++; 
-                    paramName = PARAM_VALIDATOR_PARAM + "." + String.valueOf( i ); //$NON-NLS-1$
-                    paramValue = params.get( paramName );
-                }
-                
-                try
-                {
-                    this.validator.init( keyClassNames );
-                }
-                catch( Exception e )
-                {
-                    log( e );
-                    this.validator = null;
-                }
-            }
-        }
-        
-        reset();
-    }
-    
-    /**
-     * Returns the list of user libraries that are currently selected. To listen for changes
-     * to this list use PROP_LIBRARY_NAMES.
-     * 
-     * @return the list of user libraries that are currently selected
-     */
-
-    public synchronized final List<String> getLibraryNames()
-    {
-        return this.libraryNamesReadOnly;
-    }
-    
-    /**
-     * Sets the list of user libraries. 
-     * 
-     * @param libraryNames the list of user library names
-     */
-    
-    public synchronized final void setLibraryNames( final List<String> libraryNames )
-    {
-        final List<String> oldLibraryNames = this.libraryNamesReadOnly;
-        this.libraryNames = new ArrayList<String>( libraryNames );
-        this.libraryNamesReadOnly = Collections.unmodifiableList( this.libraryNames );
-        notifyListeners( PROP_LIBRARY_NAMES, oldLibraryNames, this.libraryNamesReadOnly );
-    }
-    
-    /**
-     * Adds a library to the list of selected user libraries.
-     * 
-     * @param libraryName the name of the library
-     */
-    
-    public synchronized final void addLibraryName( final String libraryName )
-    {
-        if( ! this.libraryNamesReadOnly.contains( libraryName ) )
-        {
-            final List<String> oldLibraryNames = this.libraryNamesReadOnly;
-            this.libraryNames = new ArrayList<String>( oldLibraryNames );
-            this.libraryNamesReadOnly = Collections.unmodifiableList( this.libraryNames );
-            this.libraryNames.add( libraryName );
-            notifyListeners( PROP_LIBRARY_NAMES, oldLibraryNames, this.libraryNamesReadOnly );
-        }
-    }
-    
-    /**
-     * Resolve the referenced user libraries into a collection of classpath entries that reference
-     * physical libraries. 
-     * 
-     * @return the classpath entries contributed by the referenced user libraries
-     */
-    
-    public synchronized Collection<IClasspathEntry> resolve()
-    {
-        final List<IClasspathEntry> entries = new ArrayList<IClasspathEntry>();
-        final UserLibraryManager userLibraryManager = JavaModelManager.getUserLibraryManager();
-        
-        for( String libraryName : this.libraryNames )
-        {
-            final UserLibrary userLibrary = userLibraryManager.getUserLibrary( libraryName );
-            
-            if( userLibrary != null )
-            {
-                for( IClasspathEntry cpe : userLibrary.getEntries() )
-                {
-                    entries.add( cpe );
-                }
-            }
-        }
-        
-        return Collections.unmodifiableCollection( entries );
-    }
-    
-    /**
-     * Validates the state of this operation config object and returns a status object
-     * describing any problems. If no problems are detected, this should return OK
-     * status.
-     * 
-     * @return the result of validating this operation config
-     */
-    
-    @Override
-    public synchronized IStatus validate()
-    {
-        IStatus st = Status.OK_STATUS;
-        
-        if( this.libraryNames.size() == 0 )
-        {
-            st = createErrorStatus( Resources.libraryNeedsToBeSelected );
-        }
-        else
-        {
-            if( this.validator != null )
-            {
-                try
-                {
-                    st = this.validator.validate( this );
-                }
-                catch( Exception e )
-                {
-                    log( e );
-                    this.validator = null;
-                }
-            }
-        }
-        
-        return st;
-    }
-    
-    /**
-     * Resets this operation config to its initial state (prior to any user changes).
-     */
-
-    @Override
-    public synchronized void reset()
-    {
-        final IProject project = getFacetedProject().getProject();
-        final IProjectFacet f = getProjectFacet();
-        final IProjectFacetVersion fv = getProjectFacetVersion();
-        
-        List<String> newLibraryNames = null;
-
-        if( project != null )
-        {
-            final ILibraryProvider currentProvider 
-                = LibraryProviderFramework.getCurrentProvider( project, f );
-            
-            if( currentProvider == getLibraryProvider() )
-            {
-                final List<IClasspathEntry> entries;
-                
-                try
-                {
-                    entries = ClasspathUtil.getClasspathEntries( project, f );
-                }
-                catch( CoreException e )
-                {
-                    throw new RuntimeException( e );
-                }
-                
-                final List<String> libraryNamesList = new ArrayList<String>();
-
-                for( IClasspathEntry cpe : entries )
-                {
-                    if( cpe.getEntryKind() == IClasspathEntry.CPE_CONTAINER )
-                    {
-                        final IPath path = cpe.getPath();
-                        
-                        if( path.segmentCount() >= 2 && path.segment( 0 ).equals( JavaCore.USER_LIBRARY_CONTAINER_ID ) )
-                        {
-                            libraryNamesList.add( path.segment( 1 ) );
-                        }
-                    }
-                }
-                
-                newLibraryNames = libraryNamesList;
-            }
-        }
-        
-        if( newLibraryNames == null )
-        {
-            newLibraryNames = new ArrayList<String>();
-            
-            try
-            {
-                Preferences prefs = FacetedProjectFramework.getPreferences( f );
-                
-                if( prefs.nodeExists( PREFS_LAST_USED_LIBRARIES ) )
-                {
-                    prefs = prefs.node( PREFS_LAST_USED_LIBRARIES );
-                    
-                    if( prefs.nodeExists( fv.getVersionString() ) )
-                    {
-                        prefs = prefs.node( fv.getVersionString() );
-                        
-                        for( String libraryName : prefs.childrenNames() )
-                        {
-                            newLibraryNames.add( libraryName );
-                        }
-                    }
-                }
-            }
-            catch( BackingStoreException e )
-            {
-                log( e );
-            }
-        }
-        
-        setLibraryNames( newLibraryNames );
-    }
-
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String libraryNeedsToBeSelected;
-
-        static
-        {
-            initializeMessages( UserLibraryProviderInstallOperationConfig.class.getName(), 
-                                Resources.class );
-        }
-    }
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/user/UserLibraryProviderInstallOperationConfig.properties b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/user/UserLibraryProviderInstallOperationConfig.properties
deleted file mode 100644
index 5d34536..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/user/UserLibraryProviderInstallOperationConfig.properties
+++ /dev/null
@@ -1 +0,0 @@
-libraryNeedsToBeSelected = At least one user library must be selected.
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/user/UserLibraryProviderUninstallOperation.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/user/UserLibraryProviderUninstallOperation.java
deleted file mode 100644
index a98298e..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/user/UserLibraryProviderUninstallOperation.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.libprov.user;
-
-import static org.eclipse.wst.common.project.facet.core.util.internal.ProgressMonitorUtil.beginTask;
-import static org.eclipse.wst.common.project.facet.core.util.internal.ProgressMonitorUtil.done;
-import static org.eclipse.wst.common.project.facet.core.util.internal.ProgressMonitorUtil.worked;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jst.common.project.facet.core.internal.ClasspathUtil;
-import org.eclipse.jst.common.project.facet.core.libprov.LibraryProviderOperation;
-import org.eclipse.jst.common.project.facet.core.libprov.LibraryProviderOperationConfig;
-
-/**
- * The uninstall operation corresponding to the user-library-provider that uses JDT user library facility
- * for managing libraries. This class can be subclassed by those wishing to extend the base implementation
- * supplied by the framework.
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- * @since 1.4
- */
-
-public class UserLibraryProviderUninstallOperation
-
-    extends LibraryProviderOperation
-    
-{
-    /**
-     * Runs the library provider operation. Subclasses can override.
-     * 
-     * @param config the library provider operation config; will never be null
-     * @param monitor the progress monitor for status reporting and cancellation
-     * @throws CoreException if failed while executing the operation
-     */
-    
-    public void execute( final LibraryProviderOperationConfig config,
-                         final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        beginTask( monitor, "", 1 ); //$NON-NLS-1$
-        
-        try
-        {
-            final IProject project = config.getFacetedProject().getProject();
-            ClasspathUtil.removeClasspathEntries( project, config.getProjectFacet() );
-            
-            worked( monitor, 1 );
-        }
-        finally
-        {
-            done( monitor );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/user/UserLibraryValidator.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/user/UserLibraryValidator.java
deleted file mode 100644
index c2a180a..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/user/UserLibraryValidator.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.libprov.user;
-
-import java.util.List;
-
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * <p>Used to provide custom validation for user library providers. To associate a validator 
- * with a user library provider declaration, use syntax like the following. Only one validator
- * can be registered per provider, but any number of validator parameters can be specified using 
- * naming convention starting with 0.</p>
- *
- * <pre>&lt;extension point="org.eclipse.jst.common.project.facet.core.libraryProviders">
- *   &lt;provider id="..." extends="user-library-provider">
- *     ...
- *     &lt;param name="validator" value="org.eclipse.jst.common.project.facet.core.libprov.user.KeyClassesValidator"/>
- *     &lt;param name="validator.param.0" value="javax.persistence.Entity"/>
- *     ...
- *   &lt;/provider>
- * &lt;/extension></pre>
- * 
- * @see KeyClassesValidator
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- * @since 1.4
- */
-
-public abstract class UserLibraryValidator
-{
-    /**
-     * Called by the framework to initialize the validator. The list of parameters is computed
-     * based on values of library provider parameters with names that follow "validator.param.x"
-     * convention, where 'x' is a number starting with 0.
-     * 
-     * <p>The default implementation does not do anything.</p>
-     * 
-     * @param params the validator parameters
-     */
-    
-    public void init( final List<String> params )
-    {
-    }
-
-    /**
-     * Called by the framework to validate the user library provider install operation config.
-     * 
-     * @param config the user library provider install operation config
-     * @return result of validation
-     */
-    
-    public abstract IStatus validate( final UserLibraryProviderInstallOperationConfig config );
-
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/user/internal/DownloadableLibrariesExtensionPoint.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/user/internal/DownloadableLibrariesExtensionPoint.java
deleted file mode 100644
index af63e29..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/user/internal/DownloadableLibrariesExtensionPoint.java
+++ /dev/null
@@ -1,346 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.libprov.user.internal;
-
-import static org.eclipse.jst.common.project.facet.core.internal.FacetedProjectFrameworkJavaPlugin.PLUGIN_ID;
-import static org.eclipse.jst.common.project.facet.core.internal.FacetedProjectFrameworkJavaPlugin.createErrorStatus;
-import static org.eclipse.jst.common.project.facet.core.internal.FacetedProjectFrameworkJavaPlugin.log;
-import static org.eclipse.jst.common.project.facet.core.internal.FacetedProjectFrameworkJavaPlugin.logError;
-import static org.eclipse.wst.common.project.facet.core.util.internal.DomUtil.doc;
-import static org.eclipse.wst.common.project.facet.core.util.internal.DomUtil.elements;
-import static org.eclipse.wst.common.project.facet.core.util.internal.DomUtil.text;
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.findExtensions;
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.findOptionalElement;
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.getTopLevelElements;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.expressions.EvaluationContext;
-import org.eclipse.core.expressions.EvaluationResult;
-import org.eclipse.core.expressions.Expression;
-import org.eclipse.core.expressions.ExpressionConverter;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jst.common.project.facet.core.libprov.EnablementExpressionContext;
-import org.eclipse.jst.common.project.facet.core.libprov.ILibraryProvider;
-import org.eclipse.jst.common.project.facet.core.libprov.user.UserLibraryProviderInstallOperationConfig;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectBase;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.util.internal.XmlParseException;
-import org.osgi.framework.Bundle;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-/**
- * Contains the logic for processing the <code>downloadableLibraries</code> extension point. 
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class DownloadableLibrariesExtensionPoint
-{
-    public static final String EXTENSION_POINT_ID = "downloadableLibraries"; //$NON-NLS-1$
-    
-    private static final String ATTR_PATH = "path"; //$NON-NLS-1$
-    private static final String ATTR_URL = "url"; //$NON-NLS-1$
-    private static final String EL_IMPORT_DEFINITIONS = "import-definitions"; //$NON-NLS-1$
-    private static final String EL_ENABLEMENT = "enablement"; //$NON-NLS-1$
-    
-    private static final String EL_LIBRARY = "library"; //$NON-NLS-1$
-    private static final String EL_NAME = "name"; //$NON-NLS-1$
-    private static final String EL_DOWNLOAD_PROVIDER = "download-provider"; //$NON-NLS-1$
-    private static final String EL_DOWNLOAD_URL = "download-url"; //$NON-NLS-1$
-    private static final String EL_LICENSE_URL = "license-url"; //$NON-NLS-1$
-    private static final String EL_INCLUDE = "include"; //$NON-NLS-1$
-    private static final String EL_EXCLUDE = "exclude"; //$NON-NLS-1$
-    private static final String EL_ATTRIBUTES = "attributes"; //$NON-NLS-1$
-    private static final String EL_COMPONENT = "component"; //$NON-NLS-1$
-    private static final String EL_SOURCE = "source"; //$NON-NLS-1$
-    private static final String EL_JAVADOC = "javadoc"; //$NON-NLS-1$
-
-    private static final String EXPR_VAR_CONTEXT = "context"; //$NON-NLS-1$
-    private static final String EXPR_VAR_REQUESTING_PROJECT_FACET = "requestingProjectFacet"; //$NON-NLS-1$
-    private static final String EXPR_VAR_PROJECT_FACETS = "projectFacets"; //$NON-NLS-1$
-    private static final String EXPR_VAR_TARGETED_RUNTIMES = "targetedRuntimes"; //$NON-NLS-1$
-    private static final String EXPR_VAR_PROVIDER = "provider"; //$NON-NLS-1$
-
-    public static List<DownloadableLibrary> list( final UserLibraryProviderInstallOperationConfig cfg,
-                                                  final IProgressMonitor monitor )
-    {
-        final IProgressMonitor mon = ( monitor != null ? monitor : new NullProgressMonitor() );
-        
-        mon.beginTask( Resources.searchingForLibrariesTaskName, IProgressMonitor.UNKNOWN );
-        
-        try
-        {
-            final List<DownloadableLibrary> libraries = new ArrayList<DownloadableLibrary>();
-            
-            for( IConfigurationElement element 
-                 : getTopLevelElements( findExtensions( PLUGIN_ID, EXTENSION_POINT_ID ) ) )
-            {
-                if( mon.isCanceled() )
-                {
-                    return null;
-                }
-                
-                final String pluginId = element.getContributor().getName();
-                
-                if( element.getName().equals( EL_IMPORT_DEFINITIONS ) )
-                {
-                    final IConfigurationElement elEnablement = findOptionalElement( element, EL_ENABLEMENT );
-                    
-                    if( elEnablement != null )
-                    {
-                        try
-                        {
-                            final Expression expr 
-                                = ExpressionConverter.getDefault().perform( elEnablement );
-                            
-                            final EvaluationContext context
-                                = createEvaluationContext( cfg.getFacetedProject(), cfg.getProjectFacetVersion(), 
-                                                           cfg.getLibraryProvider() );
-                            
-                            if( expr.evaluate( context ) != EvaluationResult.TRUE )
-                            {
-                                continue;
-                            }
-                        }
-                        catch( CoreException e )
-                        {
-                            log( e );
-                            break;
-                        }
-                    }
-                    
-                    URL url = null;
-                    
-                    final String pathAttr = element.getAttribute( ATTR_PATH );
-                    final String urlAttr = element.getAttribute( ATTR_URL );
-                    
-                    if( pathAttr != null )
-                    {
-                        final Bundle plugin = Platform.getBundle( pluginId );
-                        url = FileLocator.find( plugin, new Path( pathAttr ), null );
-                        
-                        if( url == null )
-                        {
-                            final String msg = NLS.bind( Resources.errorPluginResourceNotFound, pluginId, pathAttr );
-                            logError( msg );
-                            continue;
-                        }
-                    }
-                    else if( urlAttr != null )
-                    {
-                        try
-                        {
-                            url = new URL( urlAttr );
-                        }
-                        catch( MalformedURLException e )
-                        {
-                            final String msg = NLS.bind( Resources.errorMalformedUrl, pluginId, urlAttr );
-                            log( createErrorStatus( msg, e ) );
-                            continue;
-                        }
-                    }
-                    else
-                    {
-                        final String msg = NLS.bind( Resources.errorMissingPathOrUrl, pluginId );
-                        logError( msg );
-                        continue;
-                    }
-                    
-                    readLibraryDefinitions( url, libraries );
-                }
-            }
-            
-            return libraries;
-        }
-        finally
-        {
-            mon.done();
-        }
-    }
-    
-    private static EvaluationContext createEvaluationContext( final IFacetedProjectBase fproj,
-                                                              final IProjectFacetVersion fv,
-                                                              final ILibraryProvider provider )
-    {
-        final EvaluationContext evalContext = new EvaluationContext( null, fv );
-        final EnablementExpressionContext context = new EnablementExpressionContext( fproj, fv, provider );
-        evalContext.addVariable( EXPR_VAR_CONTEXT, context );
-        evalContext.addVariable( EXPR_VAR_REQUESTING_PROJECT_FACET, fv );
-        evalContext.addVariable( EXPR_VAR_PROJECT_FACETS, fproj.getProjectFacets() );
-        evalContext.addVariable( EXPR_VAR_TARGETED_RUNTIMES, fproj.getTargetedRuntimes() );
-        evalContext.addVariable( EXPR_VAR_PROVIDER, provider );        
-        evalContext.setAllowPluginActivation( true );
-    
-        return evalContext;
-    }
-    
-    private static void readLibraryDefinitions( final URL url,
-                                                final List<DownloadableLibrary> libraries )
-    {
-        Document document = null;
-        InputStream in = null;
-        
-        try
-        {
-            in = url.openStream();
-        }
-        catch( IOException e )
-        {
-            final String msg = NLS.bind( Resources.errorReadingDefFile, url.toString() );
-            log( createErrorStatus( msg, e ) );
-            return;
-        }
-        
-        try
-        {
-            document = doc( in );
-        }
-        catch( XmlParseException e )
-        {
-            final String msg = NLS.bind( Resources.errorParsingDefFile, url.toString() );
-            log( createErrorStatus( msg, e ) );
-            return;
-        }
-        finally
-        {
-            try
-            {
-                in.close();
-            }
-            catch( IOException e ) {}
-        }
-        
-        if( document != null )
-        {
-            final Element root = document.getDocumentElement();
-            
-            if( root != null )
-            {
-                for( Element elLibrary : elements( root, EL_LIBRARY ) )
-                {
-                    try
-                    {
-                        final DownloadableLibrary library = new DownloadableLibrary();
-                        
-                        final String name = getRequiredElementText( url, elLibrary, EL_NAME );
-                        library.setName( name );
-                        
-                        final String provider = getRequiredElementText( url, elLibrary, EL_DOWNLOAD_PROVIDER );
-                        library.setDownloadProvider( provider );
-                        
-                        final String downloadUrl = getRequiredElementText( url, elLibrary, EL_DOWNLOAD_URL );
-                        library.setUrl( downloadUrl );
-                        
-                        final String licenseUrl = text( elLibrary, EL_LICENSE_URL );
-                        library.setLicenseUrl( licenseUrl );
-                        
-                        for( Element elInclude : elements( elLibrary, EL_INCLUDE ) )
-                        {
-                            library.addIncludePattern( text( elInclude ) );
-                        }
-
-                        for( Element elExclude : elements( elLibrary, EL_EXCLUDE ) )
-                        {
-                            library.addExcludePattern( text( elExclude ) );
-                        }
-                        
-                        for( Element elAttachment : elements( elLibrary, EL_ATTRIBUTES ) )
-                        {
-                            final String jarPath = getRequiredElementText( url, elAttachment, EL_COMPONENT );
-                            
-                            final DownloadableLibraryComponentAttributes attachment 
-                                = library.getComponentAttributes( new Path( jarPath ), true );
-                            
-                            final String sourceArchivePath = text( elAttachment, EL_SOURCE );
-                            attachment.setSourceArchivePath( sourceArchivePath );
-                            
-                            final String javadocArchivePath = text( elAttachment, EL_JAVADOC );
-                            attachment.setJavadocArchivePath( javadocArchivePath );
-                        }
-                        
-                        libraries.add( library );
-                    }
-                    catch( InvalidLibraryDefinitionException e )
-                    {
-                        // Bad library definition. Problem already reported to the user in the log,
-                        // so we just need to continue gracefully.
-                        
-                        continue;
-                    }
-                }
-            }
-        }
-    }
-    
-    private static String getRequiredElementText( final URL url,
-                                                  final Element parent,
-                                                  final String childElementName )
-    
-        throws InvalidLibraryDefinitionException
-        
-    {
-        final String val = text( parent, childElementName );
-        
-        if( val == null )
-        {
-            final String msg = NLS.bind( Resources.errorDefMissingElement, childElementName, url.toString() );
-            logError( msg );
-            throw new InvalidLibraryDefinitionException();
-        }
-        
-        return val;
-    }
-    
-    private static class InvalidLibraryDefinitionException
-    
-        extends Exception
-        
-    {
-        private static final long serialVersionUID = 1L;
-    }
-    
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String searchingForLibrariesTaskName;
-        public static String errorDefMissingElement;
-        public static String errorParsingDefFile;
-        public static String errorReadingDefFile;
-        public static String errorPluginResourceNotFound;
-        public static String errorMalformedUrl;
-        public static String errorMissingPathOrUrl;
-    
-        static
-        {
-            initializeMessages( DownloadableLibrariesExtensionPoint.class.getName(), 
-                                Resources.class );
-        }
-    }
-    
-    
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/user/internal/DownloadableLibrariesExtensionPoint.properties b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/user/internal/DownloadableLibrariesExtensionPoint.properties
deleted file mode 100644
index a16ed31..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/user/internal/DownloadableLibrariesExtensionPoint.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-searchingForLibrariesTaskName = Searching for libraries...
-errorDefMissingElement = The <{0}> element is missing or empty in the library definition at "{1}".
-errorParsingDefFile = Failed while parsing library definition file at "{0}".
-errorReadingDefFile = Failed while reading library definition file at "{0}".
-errorPluginResourceNotFound = Could not find resource "{1}" in plugin "{0}".
-errorMalformedUrl = Malformed URL "{1}" was specified in plugin "{0}".
-errorMissingPathOrUrl = Extension of downloadableLibraries in plugin "{0}" needs to specify either "path" or "url" attribute for the <library> element.
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/user/internal/DownloadableLibrary.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/user/internal/DownloadableLibrary.java
deleted file mode 100644
index ce9e78b..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/user/internal/DownloadableLibrary.java
+++ /dev/null
@@ -1,515 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.libprov.user.internal;
-
-import static org.eclipse.jdt.core.IClasspathAttribute.JAVADOC_LOCATION_ATTRIBUTE_NAME;
-import static org.eclipse.jst.common.project.facet.core.internal.FacetedProjectFrameworkJavaPlugin.PLUGIN_ID;
-import static org.eclipse.wst.common.project.facet.core.util.internal.ZipUtil.unzip;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.net.URLConnection;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jdt.core.IAccessRule;
-import org.eclipse.jdt.core.IClasspathAttribute;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.internal.core.JavaModelManager;
-import org.eclipse.jdt.internal.core.UserLibraryManager;
-import org.eclipse.osgi.util.NLS;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-@SuppressWarnings( "restriction" )
-
-public final class DownloadableLibrary
-{
-    private String name;
-    private String downloadProvider;
-    private String url;
-    private String licenseUrl;
-    
-    private Map<IPath,DownloadableLibraryComponentAttributes> componentAttributesMap
-        = new HashMap<IPath,DownloadableLibraryComponentAttributes>();
-    
-    private final List<String> includePatterns = new ArrayList<String>();
-    private final List<String> includePatternsReadOnly = Collections.unmodifiableList( this.includePatterns );
-    private final List<String> excludePatterns = new ArrayList<String>();
-    private final List<String> excludePatternsReadOnly = Collections.unmodifiableList( this.excludePatterns );
-    
-    public String getName()
-    {
-        return this.name;
-    }
-    
-    public void setName( final String name )
-    {
-        this.name = name;
-    }
-    
-    public String getDownloadProvider()
-    {
-        return this.downloadProvider;
-    }
-    
-    public void setDownloadProvider( final String downloadProvider )
-    {
-        this.downloadProvider = downloadProvider;
-    }
-    
-    public String getUrl()
-    {
-        return this.url;
-    }
-    
-    public void setUrl( final String url )
-    {
-        this.url = url;
-    }
-    
-    public String getLicenseUrl()
-    {
-        return this.licenseUrl;
-    }
-    
-    public void setLicenseUrl( final String licenseUrl )
-    {
-        this.licenseUrl = licenseUrl;
-    }
-    
-    public DownloadableLibraryComponentAttributes getComponentAttributes( final IPath path )
-    {
-        return getComponentAttributes( path, false );
-    }
-    
-    public DownloadableLibraryComponentAttributes getComponentAttributes( final IPath path,
-                                                                          final boolean createIfNecessary )
-    {
-        DownloadableLibraryComponentAttributes attachment = this.componentAttributesMap.get( path );
-        
-        if( attachment == null && createIfNecessary )
-        {
-            attachment = new DownloadableLibraryComponentAttributes( path.toPortableString() );
-            this.componentAttributesMap.put( path, attachment );
-        }
-        
-        return attachment;
-    }
-    
-    public Collection<String> getIncludePatterns()
-    {
-        return this.includePatternsReadOnly;
-    }
-    
-    public void addIncludePattern( final String includePattern )
-    {
-        if( includePattern == null )
-        {
-            return;
-        }
-        
-        for( String segment : includePattern.split( "," ) ) //$NON-NLS-1$
-        {
-            segment = segment.trim();
-            
-            if( segment.length() > 0 )
-            {
-                this.includePatterns.add( segment );
-            }
-        }
-    }
-        
-    public Collection<String> getExcludePatterns()
-    {
-        return this.excludePatternsReadOnly;
-    }
-    
-    public void addExcludePattern( final String excludePattern )
-    {
-        if( excludePattern == null )
-        {
-            return;
-        }
-        
-        for( String segment : excludePattern.split( "," ) ) //$NON-NLS-1$
-        {
-            segment = segment.trim();
-            
-            if( segment.length() > 0 )
-            {
-                this.excludePatterns.add( segment );
-            }
-        }
-    }
-        
-    public void download( final File destFolder,
-                          final String localLibraryName,
-                          final IProgressMonitor monitor )
-    
-        throws CoreException, InterruptedException
-        
-    {
-        try 
-        {
-            // Create the directory where the downloaded archive will be written to
-            // and where the exploded library will reside.
-            
-            destFolder.mkdirs();
-            
-            // Make sure that destination folder is empty and clear it out if necessary.
-            
-            for( File f : destFolder.listFiles() )
-            {
-                delete( f );
-            }
-
-            // Define the temporary download file.
-            
-            final File destFile = new File( destFolder, "download.zip" ); //$NON-NLS-1$
-            
-            // Perform the download.
-                
-            download( new URL( this.url ), destFile, monitor );
-            
-            // Unzip the downloaded file.
-
-            unzip( destFile, destFolder, monitor );
-            
-            // Delete the original downloaded file.
-            
-            destFile.delete();
-            
-            // Configure the user library.
-            
-            final List<IClasspathEntry> entries = new ArrayList<IClasspathEntry>();
-            final IPath destFolderPath = new Path( destFolder.getPath() );
-            
-            for( File jarFile : findAllJarFiles( destFolder ) )
-            {
-                final IPath jarPath = new Path( jarFile.getPath() );
-                final IPath relativeJarPath = jarPath.makeRelativeTo( destFolderPath );
-                
-                if( ! shouldInclude( relativeJarPath ) )
-                {
-                    continue;
-                }
-                
-                IPath sourceArchivePath = null;
-                String javadocArchivePath = null;
-
-                final DownloadableLibraryComponentAttributes attachment = getComponentAttributes( relativeJarPath );
-                
-                if( attachment != null )
-                {
-                    final String sourceArchivePathString = attachment.getSourceArchivePath();
-                    
-                    if( sourceArchivePathString != null )
-                    {
-                        sourceArchivePath = destFolderPath.append( sourceArchivePathString );
-                    }
-                    
-                    javadocArchivePath = attachment.getJavadocArchivePath();
-                    
-                    if( javadocArchivePath != null )
-                    {
-                        final int separator = javadocArchivePath.indexOf( '!' );
-                        final IPath pathInArchive;
-                        
-                        if( separator == -1 )
-                        {
-                            pathInArchive = null;
-                        }
-                        else
-                        {
-                            pathInArchive = new Path( javadocArchivePath.substring( separator + 1 ) );
-                            javadocArchivePath = javadocArchivePath.substring( 0, separator );
-                        }
-                        
-                        final IPath p = destFolderPath.append( javadocArchivePath );
-                        
-                        if( pathInArchive != null || p.toFile().isFile() )
-                        {
-                            javadocArchivePath = "jar:file:/" + p.toPortableString() + "!/"; //$NON-NLS-1$ //$NON-NLS-2$
-                            
-                            if( javadocArchivePath != null )
-                            {
-                                javadocArchivePath = javadocArchivePath + pathInArchive.toPortableString() + "/"; //$NON-NLS-1$
-                            }
-                        }
-                        else
-                        {
-                            javadocArchivePath = "file:/" + p.toPortableString() + "/"; //$NON-NLS-1$ //$NON-NLS-2$
-                        }
-                    }
-                }
-                
-                final IClasspathEntry cpe = newLibraryEntry( jarPath, sourceArchivePath, javadocArchivePath );
-                entries.add( cpe );
-            }
-            
-            final IClasspathEntry[] entriesArray 
-                = entries.toArray( new IClasspathEntry[ entries.size() ] );
-            
-            final UserLibraryManager userLibraryManager = JavaModelManager.getUserLibraryManager();
-            userLibraryManager.setUserLibrary( localLibraryName, entriesArray, false );
-        }
-        catch( IOException e )
-        {
-            final IStatus st = new Status( IStatus.ERROR, PLUGIN_ID, Resources.failedWhileDownloading, e );
-            throw new CoreException( st );
-        }
-    }
-    
-    private void download( final URL url,
-                           final File destFile,
-                           final IProgressMonitor monitor )
-    
-        throws IOException, InterruptedException
-        
-    {
-        monitor.setTaskName( Resources.progressConnecting );
-        
-        final URLConnection urlConnection = url.openConnection();
-        final int size = urlConnection.getContentLength();
-        
-        final String totalSizeString;
-        
-        if( size == -1 )
-        {
-            totalSizeString = null;
-            monitor.beginTask( Resources.progressTransferStarted, IProgressMonitor.UNKNOWN );
-        }
-        else
-        {
-            totalSizeString = formatByteCount( size );
-            monitor.beginTask( Resources.progressTransferStarted, size );
-        }
-        
-        InputStream in = null;
-        FileOutputStream out = null;
-        
-        try
-        {
-            in = urlConnection.getInputStream();
-            out = new FileOutputStream( destFile );
-            
-            final byte[] buffer = new byte[ 16 * 1024 ];
-            
-            int count = 0;
-            int bytesTransfered = 0;
-            
-            while( ( count = in.read( buffer ) ) != -1 )
-            {
-                if( monitor.isCanceled() )
-                {
-                    throw new InterruptedException();
-                }
-                
-                out.write( buffer, 0, count );
-                bytesTransfered += count;
-                
-                monitor.worked( count );
-                monitor.setTaskName( formatDownloadProgressMessage( bytesTransfered, totalSizeString ) );
-            }
-        }
-        finally
-        {
-            if( in != null )
-            {
-                try
-                {
-                    in.close();
-                }
-                catch( IOException e ) {}
-            }
-            
-            if( out != null )
-            {
-                try
-                {
-                    out.close();
-                }
-                catch( IOException e ) {}
-            }
-            
-            monitor.done();
-        }
-    }
-    
-    private boolean shouldInclude( final IPath path )
-    {
-        if( ! this.includePatterns.isEmpty() )
-        {
-            boolean included = false;
-            
-            for( String pattern : this.includePatterns )
-            {
-                if( path.equals( new Path( pattern ) ) )
-                {
-                    included = true;
-                    break;
-                }
-            }
-            
-            if( ! included )
-            {
-                return false;
-            }
-        }
-        
-        for( String pattern : this.excludePatterns )
-        {
-            if( path.equals( new Path( pattern ) ) )
-            {
-                return false;
-            }
-        }
-        
-        return true;
-    }
-    
-    private String formatByteCount( final int byteCount )
-    {
-        if( byteCount < 1024 * 1024 )
-        {
-            return String.format( "%3.0f KB", ( (float) byteCount ) / 1024 ); //$NON-NLS-1$
-        }
-        else
-        {
-            return String.format( "%.1f MB" , ( (float) byteCount ) / ( 1024 * 1024 ) ); //$NON-NLS-1$
-        }
-    }
-    
-    private String formatDownloadProgressMessage( final int bytesTransfered,
-                                                  final String totalSizeString )
-    {
-        final String bytesTransferedString = formatByteCount( bytesTransfered );
-        
-        if( totalSizeString != null )
-        {
-            return NLS.bind( Resources.progressTransferred, bytesTransferedString, totalSizeString );
-        }
-        else
-        {
-            return NLS.bind( Resources.progressTransferredNoTotalSize, bytesTransferedString );
-        }
-    }
-    
-    private static void delete( final File f )
-
-        throws IOException
-    
-    {
-        if( f.isDirectory() )
-        {
-            for( File child : f.listFiles() )
-            {
-                delete( child );
-            }
-        }
-    
-        if( ! f.delete() )
-        {
-            final String msg = NLS.bind( Resources.errorCouldNotDelete, f.getPath() );
-            throw new IOException( msg );
-        }
-    }
-    
-    private static List<File> findAllJarFiles( final File directory )
-    {
-        final List<File> result = new ArrayList<File>();
-        findAllJarFiles( directory, result );
-        return result;
-    }
-    
-    private static void findAllJarFiles( final File directory,
-                                         final List<File> result )
-    {
-        for( File f : directory.listFiles() )
-        {
-            if( f.isDirectory() )
-            {
-                findAllJarFiles( f, result );
-            }
-            else
-            {
-                final String fname = f.getName().toLowerCase();
-                
-                if( fname.endsWith( ".jar" ) ) //$NON-NLS-1$
-                {
-                    result.add( f );
-                }
-            }
-        }
-    }
-    
-    private static IClasspathEntry newLibraryEntry( final IPath library,
-                                                    final IPath src,
-                                                    final String javadoc )
-    {
-        final IAccessRule[] access = {};
-        
-        final IClasspathAttribute[] attrs;
-        
-        if( javadoc == null )
-        {
-            attrs = new IClasspathAttribute[ 0 ];
-        }
-        else
-        {
-            attrs = new IClasspathAttribute[]
-            { 
-               JavaCore.newClasspathAttribute( JAVADOC_LOCATION_ATTRIBUTE_NAME, javadoc )
-            };
-        }
-        
-        return JavaCore.newLibraryEntry( library, src, null, access, attrs, false );
-    }
-    
-    
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String failedWhileDownloading;
-        public static String progressConnecting;
-        public static String progressTransferStarted;
-        public static String progressTransferred;
-        public static String progressTransferredNoTotalSize;
-        public static String errorCouldNotDelete;
-    
-        static
-        {
-            initializeMessages( DownloadableLibrary.class.getName(), 
-                                Resources.class );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/user/internal/DownloadableLibrary.properties b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/user/internal/DownloadableLibrary.properties
deleted file mode 100644
index 823e343..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/user/internal/DownloadableLibrary.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-failedWhileDownloading = Failed while downloading library.
-progressConnecting = Connecting...
-progressTransferStarted = Transferring...
-progressTransferred = Transferred {0} of {1}
-progressTransferredNoTotalSize = Transferred {0}
-errorCouldNotDelete = Could not delete "{0}".
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/user/internal/DownloadableLibraryComponentAttributes.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/user/internal/DownloadableLibraryComponentAttributes.java
deleted file mode 100644
index 1baaaf1..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/libprov/user/internal/DownloadableLibraryComponentAttributes.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.libprov.user.internal;
-
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class DownloadableLibraryComponentAttributes
-{
-    private final String componentPath;
-    private String sourceArchivePath;
-    private String javadocArchivePath;
-    
-    public DownloadableLibraryComponentAttributes( final String componentPath )
-    {
-        this.componentPath = componentPath;
-    }
-    
-    public String getComponentPath()
-    {
-        return this.componentPath;
-    }
-    
-    public String getSourceArchivePath()
-    {
-        return this.sourceArchivePath;
-    }
-    
-    public void setSourceArchivePath( final String sourceArchivePath )
-    {
-        this.sourceArchivePath = sourceArchivePath;
-    }
-    
-    public String getJavadocArchivePath()
-    {
-        return this.javadocArchivePath;
-    }
-    
-    public void setJavadocArchivePath( final String javadocArchivePath )
-    {
-        this.javadocArchivePath = javadocArchivePath;
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.fproj.sdk/.classpath b/plugins/org.eclipse.wst.common.fproj.sdk/.classpath
deleted file mode 100644
index 304e861..0000000
--- a/plugins/org.eclipse.wst.common.fproj.sdk/.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/plugins/org.eclipse.wst.common.fproj.sdk/.project b/plugins/org.eclipse.wst.common.fproj.sdk/.project
deleted file mode 100644
index 3ec22af..0000000
--- a/plugins/org.eclipse.wst.common.fproj.sdk/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.common.fproj.sdk</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/plugins/org.eclipse.wst.common.fproj.sdk/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.wst.common.fproj.sdk/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index bcc26d6..0000000
--- a/plugins/org.eclipse.wst.common.fproj.sdk/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,57 +0,0 @@
-#Wed Jan 31 15:32:12 PST 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-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.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=error
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=error
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=error
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/plugins/org.eclipse.wst.common.fproj.sdk/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.common.fproj.sdk/META-INF/MANIFEST.MF
deleted file mode 100644
index a12503f..0000000
--- a/plugins/org.eclipse.wst.common.fproj.sdk/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,10 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Vendor: %providerName
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.wst.common.fproj.sdk; singleton:=true
-Bundle-Version: 1.4.100.qualifier
-Bundle-ClassPath: .
-Bundle-Localization: plugin
-Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/plugins/org.eclipse.wst.common.fproj.sdk/about.html b/plugins/org.eclipse.wst.common.fproj.sdk/about.html
deleted file mode 100644
index 2199df3..0000000
--- a/plugins/org.eclipse.wst.common.fproj.sdk/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, 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/plugins/org.eclipse.wst.common.fproj.sdk/about.ini b/plugins/org.eclipse.wst.common.fproj.sdk/about.ini
deleted file mode 100644
index 8949d8a..0000000
--- a/plugins/org.eclipse.wst.common.fproj.sdk/about.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-aboutText=%blurb
-featureImage=images/wtp-32.png
diff --git a/plugins/org.eclipse.wst.common.fproj.sdk/about.properties b/plugins/org.eclipse.wst.common.fproj.sdk/about.properties
deleted file mode 100644
index d0938a8..0000000
--- a/plugins/org.eclipse.wst.common.fproj.sdk/about.properties
+++ /dev/null
@@ -1,9 +0,0 @@
-blurb=Eclipse Faceted Project Framework SDK\n\
-\n\
-Version: {featureVersion}\n\
-\n\
-The Faceted Project Framework allows the plugin developer to think of projects \n\
-as composed of units of functionality, otherwise known as facets, that can be \n\
-added and removed by the user.\n\
-\n\
-Copyright (c) 2009 Eclipse contributors and others. All rights reserved.
diff --git a/plugins/org.eclipse.wst.common.fproj.sdk/build.properties b/plugins/org.eclipse.wst.common.fproj.sdk/build.properties
deleted file mode 100644
index 5237c90..0000000
--- a/plugins/org.eclipse.wst.common.fproj.sdk/build.properties
+++ /dev/null
@@ -1,9 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = .,\
-               META-INF/,\
-               plugin.properties,\
-               about.html,\
-               images/,\
-               about.ini,\
-               about.properties
diff --git a/plugins/org.eclipse.wst.common.fproj.sdk/images/wtp-32.png b/plugins/org.eclipse.wst.common.fproj.sdk/images/wtp-32.png
deleted file mode 100644
index 6f09c2a..0000000
--- a/plugins/org.eclipse.wst.common.fproj.sdk/images/wtp-32.png
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.wst.common.fproj.sdk/plugin.properties b/plugins/org.eclipse.wst.common.fproj.sdk/plugin.properties
deleted file mode 100644
index 88fb3ec..0000000
--- a/plugins/org.eclipse.wst.common.fproj.sdk/plugin.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-pluginName = Eclipse Faceted Project Framework SDK
-providerName = Eclipse Web Tools Platform
diff --git a/plugins/org.eclipse.wst.common.fproj.sdk/src/.do-not-delete b/plugins/org.eclipse.wst.common.fproj.sdk/src/.do-not-delete
deleted file mode 100644
index e69de29..0000000
--- a/plugins/org.eclipse.wst.common.fproj.sdk/src/.do-not-delete
+++ /dev/null
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/.classpath b/plugins/org.eclipse.wst.common.project.facet.core/.classpath
deleted file mode 100644
index 304e861..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/.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/plugins/org.eclipse.wst.common.project.facet.core/.cvsignore b/plugins/org.eclipse.wst.common.project.facet.core/.cvsignore
deleted file mode 100644
index 812fb36..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/.cvsignore
+++ /dev/null
@@ -1,7 +0,0 @@
-bin
-build.xml
-facet-core.jar
-temp.folder
-@dot
-src.zip
-javaCompiler...args
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/.options b/plugins/org.eclipse.wst.common.project.facet.core/.options
deleted file mode 100644
index 5317352..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/.options
+++ /dev/null
@@ -1,5 +0,0 @@
-org.eclipse.wst.common.project.facet.core/delegate/calls = false
-org.eclipse.wst.common.project.facet.core/actionSorting = false
-org.eclipse.wst.common.project.facet.core/activation = false
-org.eclipse.wst.common.project.facet.core/events/project = false
-org.eclipse.wst.common.project.facet.core/events/project/stacktrace = false
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/.project b/plugins/org.eclipse.wst.common.project.facet.core/.project
deleted file mode 100644
index de95a13..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.common.project.facet.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>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.wst.common.project.facet.core/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index bcc26d6..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,57 +0,0 @@
-#Wed Jan 31 15:32:12 PST 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-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.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=error
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=error
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=error
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.common.project.facet.core/META-INF/MANIFEST.MF
deleted file mode 100644
index 0d32208..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,25 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Vendor: %providerName
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.wst.common.project.facet.core; singleton:=true
-Bundle-Version: 1.4.100.qualifier
-Bundle-ClassPath: .
-Bundle-Localization: plugin
-Export-Package: org.eclipse.wst.common.project.facet.core,
- org.eclipse.wst.common.project.facet.core.events,
- org.eclipse.wst.common.project.facet.core.internal;x-friends:="org.eclipse.wst.common.project.facet.ui,org.eclipse.wst.common.project.facet.core.tests",
- org.eclipse.wst.common.project.facet.core.runtime,
- org.eclipse.wst.common.project.facet.core.runtime.events,
- org.eclipse.wst.common.project.facet.core.runtime.internal;x-friends:="org.eclipse.wst.common.project.facet.ui",
- org.eclipse.wst.common.project.facet.core.util,
- org.eclipse.wst.common.project.facet.core.util.internal;
-  x-friends:="org.eclipse.wst.common.project.facet.ui,
-   org.eclipse.wst.common.project.facet.core.tests,
-   org.eclipse.jst.common.project.facet.ui,
-   org.eclipse.jst.common.project.facet.core"
-Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.core.resources;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.core.expressions;bundle-version="[3.4.0,4.0.0)"
-Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/about.html b/plugins/org.eclipse.wst.common.project.facet.core/about.html
deleted file mode 100644
index 2199df3..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.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>June, 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/plugins/org.eclipse.wst.common.project.facet.core/about.ini b/plugins/org.eclipse.wst.common.project.facet.core/about.ini
deleted file mode 100644
index 8949d8a..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/about.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-aboutText=%blurb
-featureImage=images/wtp-32.png
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/about.properties b/plugins/org.eclipse.wst.common.project.facet.core/about.properties
deleted file mode 100644
index a868b0d..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/about.properties
+++ /dev/null
@@ -1,9 +0,0 @@
-blurb=Eclipse Faceted Project Framework\n\
-\n\
-Version: {featureVersion}\n\
-\n\
-The Faceted Project Framework allows the plugin developer to think of projects \n\
-as composed of units of functionality, otherwise known as facets, that can be \n\
-added and removed by the user.\n\
-\n\
-Copyright (c) 2009 Eclipse contributors and others. All rights reserved.
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/build.properties b/plugins/org.eclipse.wst.common.project.facet.core/build.properties
deleted file mode 100644
index aab032d..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/build.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = .,\
-               plugin.xml,\
-               schemas/,\
-               META-INF/,\
-               plugin.properties,\
-               .options,\
-               about.html,\
-               images/,\
-               about.ini,\
-               about.properties
-src.includes = about.html,\
-               plugin.properties
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/images/wtp-32.png b/plugins/org.eclipse.wst.common.project.facet.core/images/wtp-32.png
deleted file mode 100644
index 6f09c2a..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/images/wtp-32.png
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/plugin.properties b/plugins/org.eclipse.wst.common.project.facet.core/plugin.properties
deleted file mode 100644
index 0fd6335..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/plugin.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-pluginName = Eclipse Faceted Project Framework
-providerName = Eclipse Web Tools Platform
-builderName = Faceted Project Validation Builder
-validationMarkerName = Faceted Project Problem
-extPointListeners = Faceted Project Listeners Extension Point
-extPointPresets = Faceted Project Presets
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/plugin.xml b/plugins/org.eclipse.wst.common.project.facet.core/plugin.xml
deleted file mode 100644
index bbf4e44..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/plugin.xml
+++ /dev/null
@@ -1,108 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-
-<plugin>
-
-  <extension-point 
-    id="facets"
-    name="Project Facets Extension Point"
-    schema="schemas/facets.exsd"/>
-
-  <extension-point 
-    id="runtimes"
-    name="Runtimes Extension Point"
-    schema="schemas/runtimes.exsd"/>
-
-  <extension-point 
-    id="runtimeBridges"
-    name="Runtime Bridges Extension Point"
-    schema="schemas/runtimeBridges.exsd"/>
-
-  <extension-point 
-    id="defaultFacets"
-    name="Default Facets Extension Point"
-    schema="schemas/defaultFacets.exsd"/>
-
-  <extension-point 
-    id="validators"
-    name="Faceted Project Validators Extension Point"
-    schema="schemas/validators.exsd"/>
-    
-  <extension-point 
-    id="listeners" 
-    name="%extPointListeners" 
-    schema="schemas/listeners.exsd"/>
-    
-  <extension-point 
-    id="presets" 
-    name="%extPointPresets" 
-    schema="schemas/presets.exsd"/>
-  
-  <extension
-    id="nature"
-    point="org.eclipse.core.resources.natures">
-    <runtime>
-      <run class="org.eclipse.wst.common.project.facet.core.internal.FacetedProjectNature"/>
-    </runtime>
-    <builder id="org.eclipse.wst.common.project.facet.core.builder"/>
-  </extension>
-  
-  <extension
-    id="builder"
-    name="%builderName"
-    point="org.eclipse.core.resources.builders">
-    <builder hasNature="true">
-      <run class="org.eclipse.wst.common.project.facet.core.internal.FacetedProjectValidationBuilder"/>
-    </builder>
-  </extension>
-  
-  <extension 
-    point="org.eclipse.core.resources.markers"
-    id="validation.marker"
-    name="%validationMarkerName">
-    <super type="org.eclipse.core.resources.problemmarker"/>
-    <persistent value="true"/>
-  </extension>
-  
-  <extension point="org.eclipse.core.runtime.adapters">
-    <factory 
-      class="org.eclipse.wst.common.project.facet.core.internal.FacetedProjectAdapter" 
-      adaptableType="org.eclipse.core.resources.IProject">
-      <adapter type="org.eclipse.wst.common.project.facet.core.IFacetedProject"/>
-    </factory>
-  </extension>
-
-  <extension point="org.eclipse.core.expressions.propertyTesters">
-    <propertyTester
-      id="org.eclipse.wst.common.project.facet.core.internal.FacetedProjectPropertyTester1"
-      type="org.eclipse.core.resources.IResource"
-      namespace="org.eclipse.wst.common.project.facet.core"
-      properties="projectFacet"
-      class="org.eclipse.wst.common.project.facet.core.internal.FacetedProjectPropertyTester">
-    </propertyTester>
-    <propertyTester
-      id="org.eclipse.wst.common.project.facet.core.internal.FacetedProjectPropertyTester2"
-      type="org.eclipse.wst.common.project.facet.core.IProjectFacetVersion"
-      namespace="org.eclipse.wst.common.project.facet.core"
-      properties="projectFacet"
-      class="org.eclipse.wst.common.project.facet.core.internal.FacetedProjectPropertyTester">
-    </propertyTester>
-  </extension>
-  
-  <extension point="org.eclipse.wst.common.project.facet.core.presets">
-    <dynamic-preset id="default.configuration">
-      <factory class="org.eclipse.wst.common.project.facet.core.DefaultConfigurationPresetFactory"/>
-    </dynamic-preset>
-  </extension>
-
-  <extension point="org.eclipse.wst.common.project.facet.core.presets">
-    <dynamic-preset id="minimal.configuration">
-      <factory class="org.eclipse.wst.common.project.facet.core.MinimalConfigurationPresetFactory"/>
-    </dynamic-preset>
-  </extension>
-  <extension
-        point="org.eclipse.equinox.preferences.preferences">
-  </extension>
-  
-
-</plugin>
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/schemas/defaultFacets.exsd b/plugins/org.eclipse.wst.common.project.facet.core/schemas/defaultFacets.exsd
deleted file mode 100644
index 6eae9a9..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/schemas/defaultFacets.exsd
+++ /dev/null
@@ -1,223 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.wst.common.project.facet.core" xmlns="http://www.w3.org/2001/XMLSchema">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.wst.common.project.facet.core" id="defaultFacets" name="Default Facets Extension Point"/>
-      </appInfo>
-      <documentation>
-         Used to specify which facets (and which versions of those facets) should be considered part of the default configuration for a project. The optional context element allows the extender to control the situations when the provided facets should be contributed to the default configuration. The context can restrict applicability to specific runtime types and/or specific fixed facets. If multiple extensions are applicable in a given situations, the facets specified in these extensions will be merged to form a unified default configuration.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <annotation>
-         <appInfo>
-            <meta.element />
-         </appInfo>
-         <documentation>
-            (no description available)
-         </documentation>
-      </annotation>
-      <complexType>
-         <choice>
-            <element ref="default-facets" minOccurs="1" maxOccurs="unbounded"/>
-         </choice>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  A fully qualified identifier of the target extension point.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  An optional identifier of the extension instance.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  An optional name of the extension instance.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="default-facets">
-      <annotation>
-         <documentation>
-            The root element of the extension.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="context" minOccurs="0" maxOccurs="1"/>
-            <element ref="runtime-component" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="facet" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="ignore-problems" type="string">
-            <annotation>
-               <documentation>
-                  Used to control how the framework reports problems when the entities referenced by this extension are not defined. When a problem is encountered, the framework will ignore the extension contribution at level of the default-facets element. Once the problem has been handled, the framework will (by default) log an error with information about the problem. The framework can be told not to log anything in specific circumstances by using the ignore-problems attribute.&lt;br/&gt;
-
-Currently, the following rules are supported. Multiple rules can be specified by separating them with a comma. The master &quot;not-defined&quot; rule is a short hand notation for specifying all of the *-not-defined rules at the same time.&lt;br/&gt;&lt;/br/&gt;
-
-not-defined&lt;br/&gt;
-runtime-component-type-not-defined&lt;br/&gt;
-runtime-component-version-not-defined&lt;br/&gt;
-facet-not-defined&lt;br/&gt;
-facet-version-not-defined
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="runtime-component">
-      <annotation>
-         <documentation>
-            Indicates the the primary targeted runtime for the project is required to have a runtime component of specified type in order for these default facets to apply.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  Runtime component type id.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="version" type="string">
-            <annotation>
-               <documentation>
-                  Specifies the match expression for the runtime component version. The expression should be of the form &quot;2.2,2.5,[3.0-5.3],(7.3&quot;, where the comas function as an OR. Brackets and parenthesis are used as part of the range notation. A bracket means inclusive while a parenthesis means exclusive. If the version attribute is not specified, any version will satisfy the condition.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="facet">
-      <annotation>
-         <documentation>
-            Specifies project facet id and version
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The project facet id.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="version" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The project facet version.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="context">
-      <annotation>
-         <documentation>
-            Describes the situation when the specified facets should be added to the default set.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="runtime-component" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="fixed-facet" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-      </complexType>
-   </element>
-
-   <element name="fixed-facet">
-      <annotation>
-         <documentation>
-            Indicates that the specified facet needs to be one of the project&apos;s fixed facets in order for these default facets to apply.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The id of the fixed facet.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         &lt;p&gt;The following example declares facet1 (version 1.3) and facet2 (version 5.0) as default facets for runtime component MyRuntimeComponent.&lt;/p&gt; 
-
-&lt;pre&gt;
-&lt;extension point=&quot;org.eclipse.wst.common.project.facet.core.defaultFacets&quot;&gt;
-  &lt;default-facets&gt;
-    &lt;context&gt;
-      &lt;runtime-component id=&quot;MyRuntimeComponent&quot;/&gt;
-    &lt;/context&gt;
-    &lt;facet id=&quot;facet1&quot; version=&quot;1.3&quot;/&gt;
-    &lt;facet id=&quot;facet2&quot; version=&quot;5.0&quot;/&gt;
-  &lt;/default-facets&gt;
-&lt;/extension&gt;
-&lt;/pre&gt;
-
-&lt;p&gt;Multiple plugins can contribute to the set of the default facets for a given runtime component. If the following example is combined with the first one, there will be three default facets associated with MyRuntimeComponent.&lt;/p&gt;
-
-&lt;pre&gt;
-&lt;extension point=&quot;org.eclipse.wst.common.project.facet.core.defaultFacets&quot;&gt;
-  &lt;default-facets&gt;
-    &lt;context&gt;
-      &lt;runtime-component id=&quot;MyRuntimeComponent&quot;/&gt;
-    &lt;/context&gt;
-    &lt;facet id=&quot;facet3&quot; version=&quot;1.2&quot;/&gt;
-  &lt;/default-facets&gt;
-&lt;/extension&gt;
-&lt;/pre&gt;
-
-&lt;p&gt;Further context information can be specified to control when the specified default facets should be used. Consider the situation where a particular facet should only be enabled by default for a specific project type (as represented by fixed facets). In the following example, facet4 will be only enabled by default if one of the project&apos;s fixed facets is fixed.facet1.&lt;/p&gt;
-
-&lt;pre&gt;
-&lt;extension point=&quot;org.eclipse.wst.common.project.facet.core.defaultFacets&quot;&gt;
-  &lt;default-facets&gt;
-    &lt;context&gt;
-      &lt;runtime-component id=&quot;MyRuntimeComponent&quot;/&gt;
-      &lt;fixed-facet id=&quot;fixed.facet1&quot;/&gt;
-    &lt;/context&gt;
-    &lt;facet id=&quot;facet4&quot; version=&quot;1.0&quot;/&gt;
-  &lt;/default-facets&gt;
-&lt;/extension&gt;
-&lt;/pre&gt;
-      </documentation>
-   </annotation>
-
-
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) 2008 Oracle and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made 
-available under the terms of the Eclipse Public License v1.0 which accompanies 
-this distribution, and is available at &lt;a
-href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/schemas/facets.exsd b/plugins/org.eclipse.wst.common.project.facet.core/schemas/facets.exsd
deleted file mode 100644
index 84b99ff..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/schemas/facets.exsd
+++ /dev/null
@@ -1,771 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.wst.common.project.facet.core" xmlns="http://www.w3.org/2001/XMLSchema">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.wst.common.project.facet.core" id="facets" name="Project Facets Extension Point"/>
-      </appInfo>
-      <documentation>
-         This is the main extension point in the faceted project framework. It is used for defining project facets. A project facet can be thought of as a unit of functionality that the user can add to the project when the functionality is needed.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <annotation>
-         <appInfo>
-            <meta.element />
-         </appInfo>
-         <documentation>
-            (no description available)
-         </documentation>
-      </annotation>
-      <complexType>
-         <choice minOccurs="1" maxOccurs="unbounded">
-            <element ref="project-facet"/>
-            <element ref="project-facet-version"/>
-            <element ref="category"/>
-            <element ref="preset"/>
-            <element ref="template"/>
-            <element ref="action"/>
-            <element ref="event-handler"/>
-            <element ref="group"/>
-         </choice>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  A fully qualified identifier of the target extension point.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  An optional identifier of the extension instance.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  An optional name of the extension instance.
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="label" type="string">
-      <annotation>
-         <documentation>
-            The localizable name that is presented to the user. If not specified, the id will be used for a label.
-         </documentation>
-      </annotation>
-   </element>
-
-   <element name="description" type="string">
-      <annotation>
-         <documentation>
-            The description text.
-         </documentation>
-      </annotation>
-   </element>
-
-   <element name="and">
-      <annotation>
-         <documentation>
-            A facet constraint operator that performs a conjunction over the results of evaluation of two or more sub-expressions. This operator will return true if and only if all sub-expressions evaluate to true.
-         </documentation>
-      </annotation>
-      <complexType>
-         <choice minOccurs="1" maxOccurs="unbounded">
-            <element ref="and"/>
-            <element ref="or"/>
-            <element ref="requires"/>
-            <element ref="conflicts"/>
-         </choice>
-         <attribute name="ignore-problems" type="string">
-            <annotation>
-               <documentation>
-                  Used to control how the framework reports problems when the entities referenced by this constraint are not defined. When a problem is encountered, the framework will prune the constraint expression in a way that maintains as much of the expression as possible while removing the part that has the problem. For instance, if a problem is found in one branch of an OR expression, only that branch is removed. Once the problem has been handled, the framework will (by default) log an error with information about the problem. The framework can be told not to log anything in specific circumstances by using the ignore-problems attribute.&lt;br/&gt;
-
-If the ignore-problems attribute is specified at multiple levels in the constraint expression, the one that&apos;s closest to the source of the problem takes affect.&lt;br/&gt;
-
-Currently, the following rules are supported. Multiple rules can be specified by separating them with a comma. The master &quot;not-defined&quot; rule is a short hand notation for specifying all of the *-not-defined rules at the same time.&lt;br/&gt;&lt;/br/&gt;
-
-not-defined&lt;br/&gt;
-facet-not-defined&lt;br/&gt;
-facet-version-not-defined&lt;br/&gt;
-group-not-defined
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="or">
-      <annotation>
-         <documentation>
-            A facet constraint operator that performs a disjunction over the results of evaluation of two or more sub-expressions. This operator will return true if any of the sub-expressions evaluate to true.
-         </documentation>
-      </annotation>
-      <complexType>
-         <choice minOccurs="1" maxOccurs="unbounded">
-            <element ref="and"/>
-            <element ref="or"/>
-            <element ref="requires"/>
-            <element ref="conflicts"/>
-         </choice>
-         <attribute name="ignore-problems" type="string">
-            <annotation>
-               <documentation>
-                  Used to control how the framework reports problems when the entities referenced by this constraint are not defined. When a problem is encountered, the framework will prune the constraint expression in a way that maintains as much of the expression as possible while removing the part that has the problem. For instance, if a problem is found in one branch of an OR expression, only that branch is removed. Once the problem has been handled, the framework will (by default) log an error with information about the problem. The framework can be told not to log anything in specific circumstances by using the ignore-problems attribute.&lt;br/&gt;
-
-If the ignore-problems attribute is specified at multiple levels in the constraint expression, the one that&apos;s closest to the source of the problem takes affect.&lt;br/&gt;
-
-Currently, the following rules are supported. Multiple rules can be specified by separating them with a comma. The master &quot;not-defined&quot; rule is a short hand notation for specifying all of the *-not-defined rules at the same time.&lt;br/&gt;&lt;/br/&gt;
-
-not-defined&lt;br/&gt;
-facet-not-defined&lt;br/&gt;
-facet-version-not-defined&lt;br/&gt;
-group-not-defined
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="requires">
-      <annotation>
-         <documentation>
-            A facet constraint operator that is used to declare a dependency of one facet on another facet or any member of a group of facets. This operator will return true if the dependency is satisfied. Note that the group attribute should not be used together with the facet and version attributes.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="group" type="string">
-            <annotation>
-               <documentation>
-                  The id of the facet group that this facet is declaring a dependency on. Any member of the group will satisfy the dependency. This attribute should not be used in conjunction with the facet and version attributes.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="facet" type="string">
-            <annotation>
-               <documentation>
-                  The id of the facet.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="version" type="string">
-            <annotation>
-               <documentation>
-                  Specifies the match expression for the facet version. The expression should be of the form &quot;2.2,2.5,[3.0-5.3],(7.3&quot;, where the comas function as an OR. Brackets and parenthesis are used as part of the range notation. A bracket means inclusive while a parenthesis means exclusive.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="soft" type="boolean">
-            <annotation>
-               <documentation>
-                  If set to true indicates that this is a soft dependency. A soft dependency will not prevent the facet from being installed if it is not met. The purpose of specifying a soft dependency is to control facet installation order. If facet A declares a soft dependency on facet B, facet A is guaranteed to be installed after B has been installed (assuming B is selected).
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="ignore-problems" type="string">
-            <annotation>
-               <documentation>
-                  Used to control how the framework reports problems when the entities referenced by this constraint are not defined. When a problem is encountered, the framework will prune the constraint expression in a way that maintains as much of the expression as possible while removing the part that has the problem. For instance, if a problem is found in one branch of an OR expression, only that branch is removed. Once the problem has been handled, the framework will (by default) log an error with information about the problem. The framework can be told not to log anything in specific circumstances by using the ignore-problems attribute.&lt;br/&gt;
-
-If the ignore-problems attribute is specified at multiple levels in the constraint expression, the one that&apos;s closest to the source of the problem takes affect.&lt;br/&gt;
-
-Currently, the following rules are supported. Multiple rules can be specified by separating them with a comma. The master &quot;not-defined&quot; rule is a short hand notation for specifying all of the *-not-defined rules at the same time.&lt;br/&gt;&lt;/br/&gt;
-
-not-defined&lt;br/&gt;
-facet-not-defined&lt;br/&gt;
-facet-version-not-defined&lt;br/&gt;
-group-not-defined
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="conflicts">
-      <annotation>
-         <documentation>
-            A facet constraint operator that is used to declare a conflict between this facet and another facet or this facet and a group of facets. This operator will return true if and only if the conflict is not present. Note that the group attribute should not be used together with the facet and version attributes.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="group" type="string">
-            <annotation>
-               <documentation>
-                  The id of the facet group that this facet conflicts with. Note that it is safe for the declaring facet to be a member of this group. Conflicts between the facet and itself are ignored. This attribute should not be used in conjunction with the facet and version attributes.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="facet" type="string">
-            <annotation>
-               <documentation>
-                  The id of the facet that this facet conflicts with. If the version attribute is specified, the conflict declaration will be limited to those versions covered by the version expression.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="version" type="string">
-            <annotation>
-               <documentation>
-                  Used in conjunction with the facet attribute to limit the versions covered by the conflict declaration. The version expression should be of the form &quot;2.2,2.5,[3.0-5.3],(7.3&quot;, where the comas function as an OR. Brackets and parenthesis are used as part of the range notation. A bracket means inclusive while a parenthesis means exclusive.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="ignore-problems" type="string">
-            <annotation>
-               <documentation>
-                  Used to control how the framework reports problems when the entities referenced by this constraint are not defined. When a problem is encountered, the framework will prune the constraint expression in a way that maintains as much of the expression as possible while removing the part that has the problem. For instance, if a problem is found in one branch of an OR expression, only that branch is removed. Once the problem has been handled, the framework will (by default) log an error with information about the problem. The framework can be told not to log anything in specific circumstances by using the ignore-problems attribute.&lt;br/&gt;
-
-If the ignore-problems attribute is specified at multiple levels in the constraint expression, the one that&apos;s closest to the source of the problem takes affect.&lt;br/&gt;
-
-Currently, the following rules are supported. Multiple rules can be specified by separating them with a comma. The master &quot;not-defined&quot; rule is a short hand notation for specifying all of the *-not-defined rules at the same time.&lt;br/&gt;&lt;/br/&gt;
-
-not-defined&lt;br/&gt;
-facet-not-defined&lt;br/&gt;
-facet-version-not-defined&lt;br/&gt;
-group-not-defined
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="constraint">
-      <annotation>
-         <documentation>
-            Specifies the constraint that has to be satisfied before this facet can be installed in a project. A constraint can be used to specify dependencies on other facets as well as conflicts.
-         </documentation>
-      </annotation>
-      <complexType>
-         <choice>
-            <element ref="and"/>
-            <element ref="or"/>
-            <element ref="requires"/>
-            <element ref="conflicts"/>
-         </choice>
-         <attribute name="ignore-problems" type="string">
-            <annotation>
-               <documentation>
-                  Used to control how the framework reports problems when the entities referenced by this constraint are not defined. When a problem is encountered, the framework will prune the constraint expression in a way that maintains as much of the expression as possible while removing the part that has the problem. For instance, if a problem is found in one branch of an OR expression, only that branch is removed. Once the problem has been handled, the framework will (by default) log an error with information about the problem. The framework can be told not to log anything in specific circumstances by using the ignore-problems attribute.&lt;br/&gt;
-
-If the ignore-problems attribute is specified at multiple levels in the constraint expression, the one that&apos;s closest to the source of the problem takes affect.&lt;br/&gt;
-
-Currently, the following rules are supported. Multiple rules can be specified by separating them with a comma. The master &quot;not-defined&quot; rule is a short hand notation for specifying all of the *-not-defined rules at the same time.&lt;br/&gt;&lt;/br/&gt;
-
-not-defined&lt;br/&gt;
-facet-not-defined&lt;br/&gt;
-facet-version-not-defined&lt;br/&gt;
-group-not-defined
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="group-member">
-      <annotation>
-         <documentation>
-            Makes this facet a member of the group specified in the id attribute. A facet can be a member of any number of groups. Groups are auto-created when referenced by this extension point. The facet groups are primarily used when specifying conflict constraints.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The id of the facet group to add this facet to. Groups are auto-created when referenced by this extension point.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="project-facet">
-      <annotation>
-         <documentation>
-            Declares a project facet. A project facet can be thought of as a unit of functionality that the user can add to the project when the functionality is needed. Note that a facet need to have a least one version declared in order to be useful. See project-facet-version for more details.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="label" minOccurs="0" maxOccurs="1"/>
-            <element ref="description" minOccurs="0" maxOccurs="1"/>
-            <element ref="version-comparator" minOccurs="0" maxOccurs="1"/>
-            <element ref="default-version" minOccurs="0" maxOccurs="1"/>
-            <element ref="member" minOccurs="0" maxOccurs="1"/>
-            <element ref="property" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  Project facet identifier.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="project-facet-version">
-      <annotation>
-         <documentation>
-            Declares a project facet version. Each facet needs to have at leas one version declared in order to be useful.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="constraint" minOccurs="0" maxOccurs="1"/>
-            <element ref="group-member" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="action" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="event-handler" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="property" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="facet" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The id of the project facet that this is a version of. The facet itself needs to be declared using the project-facet element.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="version" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The version string. Has to be compatible with the version comparator specified for this facet or use the standard decimal version notation (i.e. 1.23.005) if the facet does not specify a custom version comparator.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="version-comparator">
-      <annotation>
-         <documentation>
-            Specifies the version comparator for this project facet. If no version comparator is specified the default comparator will be used. The default version comparator can handle versions that are written in standard decimal notation.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The version comparator class name. Has to implement java.util.Comparator&amp;lt;String&amp;gt; interface.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="java.util.Comparator"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="category">
-      <annotation>
-         <documentation>
-            Declares a project facets category. Categories are groups of facets that the user will typically want to add or remove as a set.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="label" minOccurs="0" maxOccurs="1"/>
-            <element ref="description" minOccurs="0" maxOccurs="1"/>
-         </sequence>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The category id.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="preset">
-      <annotation>
-         <appInfo>
-            <meta.element deprecated="true"/>
-         </appInfo>
-         <documentation>
-            Declares a preset. A preset represents a common configuration of facets and their versions that a user might want to utilize on several projects. Presets can be supplied via this extension point or created by the user.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="label"/>
-            <element ref="description" minOccurs="0" maxOccurs="1"/>
-         </sequence>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The preset id.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="template">
-      <annotation>
-         <documentation>
-            Declares a template. A template is simply a combination of fixed facets and an optional preset. Templates are used as a guide when creation projects.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="label"/>
-            <element ref="fixed" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="preset"/>
-         </sequence>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The template id.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="fixed">
-      <complexType>
-         <attribute name="facet" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="action">
-      <annotation>
-         <documentation>
-            Provides implementation of an action, such as install or uninstall, that a user can take on a project facet. Any action that&apos;s not implemented will not be available to the user. The action element can be used standalone or embeded inside the project-facet-version element. If used inside the project-facet-version element, the facet and version attributes are implied and should not be specified.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="config-factory" minOccurs="0" maxOccurs="1"/>
-            <element ref="delegate"/>
-         </sequence>
-         <attribute name="type" use="required">
-            <annotation>
-               <documentation>
-                  Action type.
-               </documentation>
-            </annotation>
-            <simpleType>
-               <restriction base="string">
-                  <enumeration value="install">
-                  </enumeration>
-                  <enumeration value="uninstall">
-                  </enumeration>
-                  <enumeration value="version-change">
-                  </enumeration>
-                  <enumeration value="runtime-changed">
-                  </enumeration>
-                  <enumeration value="INSTALL">
-                  </enumeration>
-                  <enumeration value="UNINSTALL">
-                  </enumeration>
-                  <enumeration value="VERSION_CHANGE">
-                  </enumeration>
-               </restriction>
-            </simpleType>
-         </attribute>
-         <attribute name="facet" type="string">
-            <annotation>
-               <documentation>
-                  The id of the project facet that this action applies to. This attribute should not be used when embeding the action element inside the project-facet-version element.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="version" type="string">
-            <annotation>
-               <documentation>
-                  The version of the project facet that this action applies to. Multiple versions can be specified using version expression syntax. The version expression should be of the form &quot;2.2,2.5,[3.0-5.3],(7.3&quot;, where the comas function as an OR. Brackets and parenthesis are used as part of the range notation. A bracket means inclusive while a parenthesis means exclusive. This attribute should not be used when embeding the action element inside the project-facet-version element.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  The action id. If not specified, a default id will be assigned using the &quot;[facet-id]#[version-expression]#[action-type]&quot; pattern.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="config-factory">
-      <annotation>
-         <documentation>
-            Specifies the factory that will construct a configuration object to be used for parameterizing the action delegate. A configuration object is not necessary if the delegate does not require parameterization.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The config factory class name. Has to implement org.eclipse.wst.common.project.facet.core.IActionConfigFactory interface.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.wst.common.project.facet.core.IActionConfigFactory"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="delegate">
-      <annotation>
-         <documentation>
-            Specifies the delegate that should be invoked when an action or an event happens.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The delegate class name. Has to implement org.eclipse.wst.common.project.facet.core.IDelegate interface.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.wst.common.project.facet.core.IDelegate"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="event-handler">
-      <annotation>
-         <appInfo>
-            <meta.element deprecated="true"/>
-         </appInfo>
-         <documentation>
-            Adds an event handler for one of the events in the faceted project life cycle. The event-handler element can be used standalone or embeded inside the project-facet-version element. If used inside the project-facet-version element, the facet and version attributes are implied and should not be specified.&lt;br/&gt;&lt;br/&gt;
-
-&lt;b&gt;Deprecation Notes:&lt;/b&gt; This part of the facets extension point is deprecated. The org.eclipse.wst.common.project.facet.core.listeners extension point should be used instead.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="delegate"/>
-         </sequence>
-         <attribute name="type" use="required">
-            <annotation>
-               <documentation>
-                  The type of the event.
-               </documentation>
-            </annotation>
-            <simpleType>
-               <restriction base="string">
-                  <enumeration value="PRE_INSTALL">
-                  </enumeration>
-                  <enumeration value="POST_INSTALL">
-                  </enumeration>
-                  <enumeration value="PRE_UNINSTALL">
-                  </enumeration>
-                  <enumeration value="POST_UNINSTALL">
-                  </enumeration>
-                  <enumeration value="PRE_VERSION_CHANGE">
-                  </enumeration>
-                  <enumeration value="POST_VERSION_CHANGE">
-                  </enumeration>
-                  <enumeration value="RUNTIME_CHANGED">
-                  </enumeration>
-               </restriction>
-            </simpleType>
-         </attribute>
-         <attribute name="facet" type="string">
-            <annotation>
-               <documentation>
-                  The id of the project facet that this event handler applies to. This attribute should not be used when embeding the event-handler element inside the project-facet-version element.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="version" type="string">
-            <annotation>
-               <documentation>
-                  The version of the project facet that this event handler applies to. Multiple versions can be specified using version expression syntax. The version expression should be of the form &quot;2.2,2.5,[3.0-5.3],(7.3&quot;, where the comas function as an OR. Brackets and parenthesis are used as part of the range notation. A bracket means inclusive while a parenthesis means exclusive. This attribute should not be used when embeding the event-handler element inside the project-facet-version element.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="property">
-      <annotation>
-         <documentation>
-            Sets a property on the containing context.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="name" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The name of the property.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="value" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The value of the property.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="default-version">
-      <annotation>
-         <documentation>
-            Used to provide the facet version that should be selected by default. If a default version is not specified, the latest version will be used. Note that if a runtime is selected, the runtime can override this default with a version best suited for that runtime. The default can be specified either statically by using the &lt;code&gt;version&lt;/code&gt; attribute or dynamically by implementing the &lt;code&gt;org.eclipse.wst.common.project.facet.core.IDefaultVersionProvider&lt;/code&gt; interface and using the &lt;code&gt;provider&lt;/code&gt; attribute.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="version" type="string">
-            <annotation>
-               <documentation>
-                  Specifies the version that should be used as the default. This attribute is ignored if the &lt;code&gt;provider&lt;/code&gt; attribute is specified.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="provider" type="string">
-            <annotation>
-               <documentation>
-                  Specifies the version provider that will be consulted in order to determine the default version. If this attribute is used, the &lt;code&gt;version&lt;/code&gt; attribute will be ignored if present.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.wst.common.project.facet.core.IDefaultVersionProvider"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="group">
-      <annotation>
-         <documentation>
-            Describes a project facet group. A group is a named collection of project facet versions. It is used primarily as a parameter to the &quot;requires&quot; and &quot;conflicts&quot; constraints and allows a level of indirection where a facet does not need to know about all the members of the group. A given project facet version can belong to several groups. Groups are created automatically when used in the &quot;group-member&quot; element, so an explicit group declaration is optional. However, it does allow a label and a description to be associated with the group.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="label"/>
-            <element ref="description" minOccurs="0" maxOccurs="1"/>
-         </sequence>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  Group identifier.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="member">
-      <annotation>
-         <documentation>
-            Adds the project facet as a member of a category.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="category" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The category id.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         &lt;p&gt;The following example illustrates the various facilities exposed by this extension point. This example is taken from the &lt;i&gt;Building Project Facets&lt;/i&gt; tutorial.&lt;/p&gt;
-
-&lt;pre&gt;
-&lt;extension point=&quot;org.eclipse.wst.common.project.facet.core.facets&quot;&gt;
-
-  &lt;category id=&quot;formgen.category&quot;&gt;
-    &lt;label&gt;FormGen&lt;/label&gt;
-    &lt;description&gt;Enables generation of HTML forms based on XML definition files.&lt;/description&gt;
-  &lt;/category&gt;
-
-  &lt;project-facet id=&quot;formgen.core&quot;&gt;
-    &lt;label&gt;FormGen Core&lt;/label&gt;
-    &lt;description&gt;
-      Enables generation of HTML forms based on XML definition files.
-    &lt;/description&gt;
-    &lt;category&gt;formgen.category&lt;/category&gt;
-  &lt;/project-facet&gt;
-
-  &lt;project-facet-version facet=&quot;formgen.core&quot; version=&quot;1.0&quot;&gt;
-    &lt;constraint&gt;
-      &lt;requires facet=&quot;jst.web&quot; version=&quot;2.2,2.3,2.4&quot;/&gt;
-    &lt;/constraint&gt;
-    &lt;action type=&quot;INSTALL&quot; id=&quot;formgen.core.install&quot;&gt;
-      &lt;config-factory class=&quot;com.formgen.eclipse.FormGenCoreFacetInstallConfig$Factory&quot;/&gt;
-      &lt;delegate class=&quot;com.formgen.eclipse.FormGenCoreFacetInstallDelegate&quot;/&gt;
-    &lt;/action&gt;
-  &lt;/project-facet-version&gt;
-
-  &lt;project-facet id=&quot;formgen.ext&quot;&gt;
-    &lt;label&gt;FormGen Extensions&lt;/label&gt;
-    &lt;description&gt;
-      Enables additional FormGen widgets.
-    &lt;/description&gt;
-    &lt;category&gt;formgen.category&lt;/category&gt;
-  &lt;/project-facet&gt;
-
-  &lt;project-facet-version facet=&quot;formgen.ext&quot; version=&quot;1.0&quot;&gt;
-    &lt;constraint&gt;
-      &lt;requires facet=&quot;formgen.core&quot; version=&quot;1.0&quot;/&gt;
-    &lt;/constraint&gt;
-    &lt;action type=&quot;INSTALL&quot;&gt;
-      &lt;delegate class=&quot;com.formgen.eclipse.FormGenExtFacetInstallDelegate&quot;/&gt;
-    &lt;/action&gt;
-  &lt;/project-facet-version&gt;
-
-  &lt;preset id=&quot;formgen.preset&quot;&gt;
-    &lt;label&gt;FormGen Web Project&lt;/label&gt;
-    &lt;description&gt;Creates a web project with FormGen functionality.&lt;/description&gt;
-    &lt;facet id=&quot;jst.java&quot; version=&quot;5.0&quot;/&gt;
-    &lt;facet id=&quot;jst.web&quot; version=&quot;2.2&quot;/&gt;
-    &lt;facet id=&quot;formgen.core&quot; version=&quot;1.0&quot;/&gt;
-    &lt;facet id=&quot;formgen.ext&quot; version=&quot;1.0&quot;/&gt;
-  &lt;/preset&gt;
-  
-&lt;/extension&gt;
-&lt;/pre&gt;
-      </documentation>
-   </annotation>
-
-
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) 2008 Oracle and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials
-are made available under the terms of the Eclipse Public License v1.0
-which accompanies this distribution, and is available at
-&lt;a href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;.
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/schemas/listeners.exsd b/plugins/org.eclipse.wst.common.project.facet.core/schemas/listeners.exsd
deleted file mode 100644
index d81acd2..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/schemas/listeners.exsd
+++ /dev/null
@@ -1,147 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.wst.common.project.facet.core">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.wst.common.project.facet.core" id="listeners" name="Faceted Project Listeners Extension Point"/>
-      </appInfo>
-      <documentation>
-         This extension point allows for registration of listeners that will be notified of changes to the metadata of faceted projects. The following event types are supported: 
-
-&lt;p&gt;
-&lt;code&gt;
-PROJECT_MODIFIED&lt;br/&gt;
-PRE_INSTALL&lt;br/&gt;
-POST_INSTALL&lt;br/&gt;
-PRE_UNINSTALL&lt;br/&gt;
-POST_UNINSTALL&lt;br/&gt;
-PRE_VERSION_CHANGE&lt;br/&gt;
-POST_VERSION_CHANGE&lt;br/&gt;
-FIXED_FACETS_CHANGED&lt;br/&gt;
-TARGETED_RUNTIMES_CHANGED&lt;br/&gt;
-PRIMARY_RUNTIME_CHANGED
-&lt;/code&gt;
-&lt;/p&gt;
-
-&lt;p&gt;See the documentation for &lt;code&gt;org.eclipse.wst.common.project.facet.core.events.IFacetedProjectEvent.Type&lt;/code&gt; enum for more details about each event type.&lt;/p&gt;
-
-&lt;p&gt;It is also possible to register listeners in code using either &lt;code&gt;FacetedProjectFramework.addListener()&lt;/code&gt; or &lt;code&gt;IFacetedProject.addListener()&lt;/code&gt; methods.&lt;/p&gt;
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="listener" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="listener">
-      <annotation>
-         <documentation>
-            Registers one listener.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The listener class.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="eventTypes" type="string">
-            <annotation>
-               <documentation>
-                  A comma-separated list of event types that the listener should be notified about.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         2.0
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         &lt;pre&gt;
-&lt;extension point=&quot;org.eclipse.wst.common.project.facet.core.listeners&quot;&gt;
-  &lt;!-- Listen to all events. --&gt;
-  &lt;listener class=&quot;com.mycompany.myproduct.MyListener1&quot;/&gt;
-  &lt;!-- Listen to specific events. --&gt;
-  &lt;listener class=&quot;com.mycompany.myproduct.MyListener2&quot; eventTypes=&quot;PROJECT_MODIFIED&quot;/&gt;
-  &lt;listener class=&quot;com.mycompany.myproduct.MyListener2&quot; eventTypes=&quot;PRE_INSTALL,FIXED_FACETS_CHANGED&quot;/&gt;
-&lt;/extension&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) 2008 Oracle and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials
-are made available under the terms of the Eclipse Public License v1.0
-which accompanies this distribution, and is available at
-&lt;a href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;.
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/schemas/presets.exsd b/plugins/org.eclipse.wst.common.project.facet.core/schemas/presets.exsd
deleted file mode 100644
index 46db86b..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/schemas/presets.exsd
+++ /dev/null
@@ -1,214 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.wst.common.project.facet.core" xmlns="http://www.w3.org/2001/XMLSchema">
-<annotation>
-      <appinfo>
-         <meta.schema plugin="org.eclipse.wst.common.project.facet.core" id="presets" name="Faceted Project Presets"/>
-      </appinfo>
-      <documentation>
-         A preset represents a common configuration of facets and their versions that give a user a starting point when configuring a project. Presets can either be static or dynamic. Static presets are fully specified in this extension point. Dynamic presets are created using an extender-supplied factory that can take into account the context in which the preset will be used in. Static presets can also extend other presets.
-
-&lt;p&gt;To programmatically define a preset, use the &lt;code&gt;ProjectFacetsManager.definePreset()&lt;/code&gt; methods.&lt;/code&gt;
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="static-preset" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="dynamic-preset" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appinfo>
-                  <meta.attribute translatable="true"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="static-preset">
-      <annotation>
-         <documentation>
-            Defines a static preset. A static preset is fully specified in the extension point.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="label" minOccurs="0" maxOccurs="1"/>
-            <element ref="description" minOccurs="0" maxOccurs="1"/>
-            <element ref="facet" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The preset id.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="extends" type="string">
-            <annotation>
-               <documentation>
-                  The id of the preset that this preset is extending. If the base preset includes a facet that&apos;s also specified by this preset (derived), the version of the facet specified in the derived preset wins.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="label" type="string">
-      <annotation>
-         <documentation>
-            The localizable name that is presented to the user. If not specified, the id will be used for a label.
-         </documentation>
-      </annotation>
-   </element>
-
-   <element name="description" type="string">
-      <annotation>
-         <documentation>
-            The description text.
-         </documentation>
-      </annotation>
-   </element>
-
-   <element name="facet">
-      <annotation>
-         <documentation>
-            Specifies the facet that is part of this preset.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The project facet id.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="version" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The facet version.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="dynamic-preset">
-      <annotation>
-         <documentation>
-            Defines a dynamic preset. A dynamic preset uses a factory to synthesize the preset definition on the fly based on the context in which it will be used.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="factory"/>
-         </sequence>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  The preset id.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="factory">
-      <annotation>
-         <documentation>
-            Specifies the factory.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The name of the factory class.
-               </documentation>
-               <appinfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.wst.common.project.facet.core.IPresetFactory"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="since"/>
-      </appinfo>
-      <documentation>
-         2.0
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="examples"/>
-      </appinfo>
-      <documentation>
-         &lt;pre&gt;
-&lt;extension point=&quot;org.eclipse.wst.common.project.facet.core.presets&quot;&gt;
-
-  &lt;!-- Defines a dynamic preset which will be synthesized by the provided factory. This particular preset
-       is actually supplied by the Faceted Project Framework. What it resolves to depends on the context.
-       If project does not target a runtime, it will contain only the fixed facets with their default
-       versions. If project targets one or more runtime, this preset will contain facets that are specified
-       to be the default for the primary runtime. --&gt;
-       
-  &lt;dynamic-preset id=&quot;default.configuration&quot;&gt;
-    &lt;factory class=&quot;org.eclipse.wst.common.project.facet.core.internal.DefaultConfigurationPresetFactory&quot;/&gt;
-  &lt;/dynamic-preset&gt;
-
-  &lt;!-- Creates a preset which extends the &quot;default.configuration&quot; preset and adds two facets. --&gt; 
-       
-  &lt;static-preset id=&quot;my.favorite.preset&quot; extends=&quot;default.configuration&quot;&gt;
-    &lt;label&gt;My Favorite Configuration&lt;/label&gt;
-    &lt;description&gt;Here is the description of my favorite configuration.&lt;/description&gt;
-    &lt;facet id=&quot;facet_a&quot; version=&quot;1.2&quot;/&gt;
-    &lt;facet id=&quot;facet_b&quot; version=&quot;2.0&quot;/&gt;
-  &lt;/static-preset&gt;
-  
-&lt;/extension&gt;
-&lt;/pre&gt;
-      </documentation>
-   </annotation>
-
-
-
-
-   <annotation>
-      <appinfo>
-         <meta.section type="copyright"/>
-      </appinfo>
-      <documentation>
-         Copyright (c) 2008 Oracle and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials
-are made available under the terms of the Eclipse Public License v1.0
-which accompanies this distribution, and is available at
-&lt;a href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;.
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/schemas/runtimeBridges.exsd b/plugins/org.eclipse.wst.common.project.facet.core/schemas/runtimeBridges.exsd
deleted file mode 100644
index 23aeb3d..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/schemas/runtimeBridges.exsd
+++ /dev/null
@@ -1,123 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.wst.common.project.facet.core">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.wst.common.project.facet.core" id="runtimeBridges" name="Runtime Bridges Extension Point"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <annotation>
-         <documentation>
-            (no description available)
-         </documentation>
-      </annotation>
-      <complexType>
-         <choice>
-            <element ref="bridge"/>
-         </choice>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a fully qualified identifier of the target extension point
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  an optional identifier of the extension instance
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  an optional name of the extension instance
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="bridge">
-      <annotation>
-         <documentation>
-            (no description available)
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.wst.common.project.facet.core.runtime.IRuntimeBridge"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) 2008 Oracle and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made 
-available under the terms of the Eclipse Public License v1.0 which accompanies 
-this distribution, and is available at &lt;a
-href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/schemas/runtimes.exsd b/plugins/org.eclipse.wst.common.project.facet.core/schemas/runtimes.exsd
deleted file mode 100644
index 94e1f4c..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/schemas/runtimes.exsd
+++ /dev/null
@@ -1,290 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.wst.common.project.facet.core">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.wst.common.project.facet.core" id="runtimes" name="Runtimes Extension Point"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <annotation>
-         <documentation>
-            (no description available)
-         </documentation>
-      </annotation>
-      <complexType>
-         <choice>
-            <element ref="runtime-component-type" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="runtime-component-version" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="adapter" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="supported" minOccurs="0" maxOccurs="unbounded"/>
-         </choice>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  A fully qualified identifier of the target extension point.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  An optional identifier of the extension instance.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  An optional name of the extension instance.
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="runtime-component-type">
-      <annotation>
-         <documentation>
-            Defines a runtime component type.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="version-comparator" minOccurs="0" maxOccurs="1"/>
-         </sequence>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The id that will be used to reference this runtime component type.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="version-comparator">
-      <annotation>
-         <documentation>
-            Specifies the version comparator. If not specified, the default version comparator will be used. The default version comparator is capable of handing numerical versions that use decimal notation.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The class name.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="java.util.Comparator"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="runtime-component-version">
-      <annotation>
-         <documentation>
-            Defines a runtime component version.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="type" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The id of the runtime component type that this is a version of.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="version" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The version string.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="adapter">
-      <annotation>
-         <documentation>
-            Registers an adapter to be used with some set of runtime component types and versions.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="runtime-component"/>
-            <element ref="factory"/>
-            <element ref="type"/>
-         </sequence>
-      </complexType>
-   </element>
-
-   <element name="runtime-component">
-      <annotation>
-         <documentation>
-            Used to reference multiple runtime component types and versions.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  Specifies the runtime component type id. If this attribute is used, the &lt;code&gt;any&lt;/code&gt; attribute should not be used.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="version" type="string">
-            <annotation>
-               <documentation>
-                  Specifies the match expression for the runtime component version. The expression should be of the form &quot;2.2,2.5,[3.0-5.3],(7.3&quot;, where the comas function as an OR. Brackets and parenthesis are used as part of the range notation. A bracket means inclusive while a parenthesis means exclusive.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="any" type="string">
-            <annotation>
-               <documentation>
-                  Used to indicate that all runtime component types and versions should be matched. If this attribute is used, the &lt;code&gt;id&lt;/code&gt; and &lt;code&gt;version&lt;/code&gt; attributes should not be used. Note that this attribute can only be used when the &lt;code&gt;runtime-component&lt;/code&gt; element appears beneath the &lt;code&gt;supported&lt;/code&gt; element.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="factory">
-      <annotation>
-         <documentation>
-            Specifies the adapter factory. The factory has to implement org.eclipse.core.runtime.IAdapterFactory interface.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The class name.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.core.runtime.IAdapterFactory"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="type">
-      <annotation>
-         <documentation>
-            Specifies the type that this adapter will be adapting to.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The class name.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="supported">
-      <annotation>
-         <documentation>
-            Specifies that these project facets are supported by these runtimes.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="facet" minOccurs="1" maxOccurs="unbounded"/>
-            <element ref="runtime-component" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-      </complexType>
-   </element>
-
-   <element name="facet">
-      <annotation>
-         <documentation>
-            Used to reference one or more version of a project facet.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  Specifies the project facet id.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="version" type="string">
-            <annotation>
-               <documentation>
-                  Specifies the match expression for the runtime component version. The expression should be of the form &quot;2.2,2.5,[3.0-5.3],(7.3&quot;, where the comas function as an OR. Brackets and parenthesis are used as part of the range notation. A bracket means inclusive while a parenthesis means exclusive.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) 2008 Oracle and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made 
-available under the terms of the Eclipse Public License v1.0 which accompanies 
-this distribution, and is available at &lt;a
-href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/schemas/validators.exsd b/plugins/org.eclipse.wst.common.project.facet.core/schemas/validators.exsd
deleted file mode 100644
index 02f5d8c..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/schemas/validators.exsd
+++ /dev/null
@@ -1,146 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.wst.common.project.facet.core">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.wst.common.project.facet.core" id="validators" name="Faceted Project Validators Extension Point"/>
-      </appInfo>
-      <documentation>
-         Used for declaring faceted project validators.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <annotation>
-         <documentation>
-            (no description available)
-         </documentation>
-      </annotation>
-      <complexType>
-         <choice>
-            <element ref="validator" minOccurs="1" maxOccurs="unbounded"/>
-         </choice>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  A fully qualified identifier of the target extension point.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="facet">
-      <annotation>
-         <documentation>
-            Used to reference one or more version of a project facet.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  Specifies the project facet id.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="version" type="string">
-            <annotation>
-               <documentation>
-                  Specifies the match expression for the runtime component version. The expression should be of the form &quot;2.2,2.5,[3.0-5.3],(7.3&quot;, where the comas function as an OR. Brackets and parenthesis are used as part of the range notation. A bracket means inclusive while a parenthesis means exclusive.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="validator">
-      <annotation>
-         <documentation>
-            Declares a faceted project validator. The validator can be restricted to projects containing specific facets.
-         </documentation>
-      </annotation>
-      <complexType>
-         <choice>
-            <element ref="facet" minOccurs="0" maxOccurs="unbounded"/>
-         </choice>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The validator class name. Has to implement org.eclipse.wst.common.project.facet.core.IFacetedProjectValidator interface.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.wst.common.project.facet.core.IFacetedProjectValidator"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         &lt;p&gt;The following example declares a validator that applies to projects that have facet1 (version 1.3 or 2.5) and facet2 (any version) installed.&lt;/p&gt;
-
-&lt;pre&gt;
-&lt;extension point=&quot;org.eclipse.wst.common.project.facet.core.validators&quot;&gt;
-  &lt;validator class=&quot;com.mycorp.MyValidator1&quot;&gt;
-    &lt;facet id=&quot;facet1&quot; version=&quot;1.3,2.5&quot;/&gt;
-    &lt;facet id=&quot;facet2&quot;/&gt;
-  &lt;/validator&gt;
-&lt;/extension&gt;
-&lt;/pre&gt;
-
-&lt;p&gt;The second example declares a validator that applies to all faceted projects.&lt;/p&gt;
-
-&lt;pre&gt;
-&lt;extension point=&quot;org.eclipse.wst.common.project.facet.core.validators&quot;&gt;
-  &lt;validator class=&quot;com.mycorp.MyValidator2&quot;/&gt;
-&lt;/extension&gt;
-&lt;/pre&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) 2008 Oracle and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made 
-available under the terms of the Eclipse Public License v1.0 which accompanies 
-this distribution, and is available at &lt;a
-href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/ActionConfig.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/ActionConfig.java
deleted file mode 100644
index 36f6cab..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/ActionConfig.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-
-/**
- * @since 3.0
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public abstract class ActionConfig
-{
-    private IFacetedProjectWorkingCopy fpjwc = null;
-    private IProjectFacetVersion fv = null;
-    
-    public IFacetedProjectWorkingCopy getFacetedProjectWorkingCopy()
-    {
-        return this.fpjwc;
-    }
-    
-    public void setFacetedProjectWorkingCopy( final IFacetedProjectWorkingCopy fpjwc )
-    {
-        this.fpjwc = fpjwc;
-    }
-    
-    public IProjectFacetVersion getProjectFacetVersion()
-    {
-        return this.fv;
-    }
-    
-    public void setProjectFacetVersion( final IProjectFacetVersion fv )
-    {
-        this.fv = fv;
-    }
-    
-    /**
-     * Returns the set of files that might be modified during execution of this action. This
-     * allows calls to IWorkspace.validateEdit() to be batched, resulting in fewer prompts to the
-     * user. The default implementation returns an empty (modifiable) set.
-     * 
-     * @return the set of files that might be modified during the execution of the action
-     * @since 1.4
-     */
-    
-    public Set<IFile> getValidateEditFiles()
-    {
-        return new HashSet<IFile>();
-    }
-    
-    public IStatus validate()
-    {
-        return Status.OK_STATUS;
-    }
-    
-    /**
-     * Called when the action config object is not longer needed by the framework. Implementations
-     * can override to perform cleanup of allocated resources or registered listeners.
-     * 
-     * @since 1.4
-     */
-    
-    public void dispose()
-    {
-    }
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/DefaultConfigurationPresetFactory.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/DefaultConfigurationPresetFactory.java
deleted file mode 100644
index ccc01e2..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/DefaultConfigurationPresetFactory.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.internal.DefaultFacetsExtensionPoint;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-
-/**
- * Preset factory for the <code>default.configuration</code> preset. The contents of this preset
- * are calculated as follows:
- * 
- * <ol>
- *   <li>If a runtime is selected, this preset will contain default facets as specified by
- *     {@link IRuntime#getDefaultFacets(Set)}.</li>
- *   <li>If no runtime is selected, this preset will contain default versions for all of the 
- *     fixed facets as specified by {@link IProjectFacet#getDefaultVersion()}.
- * </ol>
- * 
- * @since 3.0
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public class DefaultConfigurationPresetFactory
-
-    implements IPresetFactory
-    
-{
-    public static final String PRESET_ID = "default.configuration"; //$NON-NLS-1$
-    
-    public PresetDefinition createPreset( final String presetId,
-                                          final Map<String,Object> context ) 
-    
-        throws CoreException
-        
-    {
-        final IFacetedProjectBase fproj 
-            = (IFacetedProjectBase) context.get( IDynamicPreset.CONTEXT_KEY_FACETED_PROJECT );
-        
-        final IRuntime runtime = fproj.getPrimaryRuntime(); 
-        
-        final String label;
-        final String description;
-        
-        if( runtime != null )
-        {
-            label = Resources.bind( Resources.presetLabel, runtime.getLocalizedName() );
-            description = Resources.bind( Resources.presetDescription, runtime.getLocalizedName() );
-        }
-        else
-        {
-            label = Resources.presetLabelNoRuntime;
-            description = Resources.presetDescriptionNoRuntime;
-        }
-
-        final Set<IProjectFacetVersion> facets 
-            = DefaultFacetsExtensionPoint.getDefaultFacets( fproj );
-        
-        if( facets == null )
-        {
-            return null;
-        }
-        else
-        {
-            return new PresetDefinition( label, description, facets );
-        }
-    }
-    
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String presetLabel;
-        public static String presetDescription;
-        public static String presetLabelNoRuntime;
-        public static String presetDescriptionNoRuntime;
-        
-        static
-        {
-            initializeMessages( DefaultConfigurationPresetFactory.class.getName(), 
-                                Resources.class );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/DefaultConfigurationPresetFactory.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/DefaultConfigurationPresetFactory.properties
deleted file mode 100644
index 61deeb2..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/DefaultConfigurationPresetFactory.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-presetLabel = Default Configuration for {0}
-presetDescription = A good starting point for working with {0} runtime. Additional facets can later be installed to add new functionality to the project.
-presetLabelNoRuntime = Default Configuration
-presetDescriptionNoRuntime = The default configuration provides a good starting point. Additional facets can later be installed to add new functionality to the project.
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/DefaultVersionComparator.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/DefaultVersionComparator.java
deleted file mode 100644
index 69c47a6..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/DefaultVersionComparator.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.List;
-import java.util.StringTokenizer;
-
-/**
- * The default version comparator that will be used when one is not explicitly 
- * specified. The default version comparator can handle version strings using 
- * the standard decimal notation. It can also be subclassed to modify the 
- * separators that are used or to provide custom parsing for a version segment.
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public class DefaultVersionComparator
-
-    implements Comparator<String>
-    
-{
-    public final int compare( final String obj1,
-                              final String obj2 )
-    
-        throws VersionFormatException
-        
-    {
-        final Comparable<Object>[] parsed1 = parse( obj1 );
-        final Comparable<Object>[] parsed2 = parse( obj2 );
-        
-        for( int i = 0; i < parsed1.length && i < parsed2.length; i++ )
-        {
-            final int res = parsed1[ i ].compareTo( parsed2[ i ] );
-            if( res != 0 ) return res;
-        }
-        
-        if( parsed1.length > parsed2.length )
-        {
-            return 1;
-        }
-        else if( parsed1.length < parsed2.length )
-        {
-            return -1;
-        }
-        else
-        {
-            return 0;
-        }
-    }
-    
-    /**
-     * Returns the string containing the separator characters that should be
-     * used when breaking the version string into segments. The default
-     * implementation returns ".". Subclasses can override this method.
-     * 
-     * @return the separator characters
-     */
-    
-    protected String getSeparators()
-    {
-        return "."; //$NON-NLS-1$
-    }
-    
-    /**
-     * Parses a segment of the version string. The default implementation parses
-     * the first segment as an integer (leading zeroes are ignored) and the
-     * rest of the segments as decimals (leading zeroes are kept). Subclasses 
-     * can override this method to provide custom parsing for any number of 
-     * segments.
-     * 
-     * @param version the full version string
-     * @param segment the version segment
-     * @param position the position of the segment in the version string
-     * @return the parsed representation of the segment as a {@link Comparable}
-     * @throws VersionFormatException if encountered an error while parsing
-     */
-    
-    protected Comparable<? extends Object> parse( final String version,
-                                                  final String segment,
-                                                  final int position )
-    
-        throws VersionFormatException
-        
-    {
-        try
-        {
-            if( position == 0 )
-            {
-                return new Integer( segment );
-            }
-            else
-            {
-                return new BigDecimal( "." + segment ); //$NON-NLS-1$
-            }
-        }
-        catch( NumberFormatException e )
-        {
-            throw new VersionFormatException( this, version );
-        }
-    }
-    
-    /**
-     * Parses the version string.
-     * 
-     * @param ver the version string
-     * @return an array containing the parsed representation of the version
-     */
-    
-    @SuppressWarnings( "unchecked" )
-    private Comparable<Object>[] parse( final String ver )
-    {
-        final List<String> segments = new ArrayList<String>();
-        
-        for( StringTokenizer t = new StringTokenizer( ver, getSeparators() );
-             t.hasMoreTokens(); )
-        {
-            segments.add( t.nextToken() );
-        }
-        
-        final Comparable[] parsed = new Comparable[ segments.size() ];
-        
-        for( int i = 0, n = segments.size(); i < n; i++ )
-        {
-            parsed[ i ] = parse( ver, segments.get( i ), i );
-        }
-        
-        return parsed;
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/FacetedProjectFramework.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/FacetedProjectFramework.java
deleted file mode 100644
index 61e2278..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/FacetedProjectFramework.java
+++ /dev/null
@@ -1,281 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.util.Set;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectEvent;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectFrameworkEvent;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectFrameworkListener;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener;
-import org.eclipse.wst.common.project.facet.core.internal.FacetedProjectFrameworkImpl;
-import org.eclipse.wst.common.project.facet.core.internal.FacetedProjectNature;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-import org.eclipse.wst.common.project.facet.core.util.internal.VersionExpr2;
-import org.osgi.service.prefs.BackingStoreException;
-import org.osgi.service.prefs.Preferences;
-
-/**
- * @noinstantiate This class is not intended to be instantiated by clients.
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class FacetedProjectFramework
-{
-    public static final String PLUGIN_ID 
-        = "org.eclipse.wst.common.project.facet.core"; //$NON-NLS-1$
-    
-    /**
-     * The id of a built-in preset that provides default configuration. The contents of this preset
-     * are calculated as follows:
-     * 
-     * <ol>
-     *   <li>If a runtime is selected, this preset will contain default facets as specified by
-     *     {@link IRuntime#getDefaultFacets(Set)}.</li>
-     *   <li>If no runtime is selected, this preset will contain default versions for all of the 
-     *     fixed facets as specified by {@link IProjectFacet#getDefaultVersion()}.
-     * </ol>
-     * 
-     * @since 2.0
-     */
-    
-    public static final String DEFAULT_CONFIGURATION_PRESET_ID 
-        = "default.configuration"; //$NON-NLS-1$
-    
-    private static FacetedProjectFrameworkImpl impl = null;
-    
-    private FacetedProjectFramework() { }
-    
-    public static IFacetedProjectWorkingCopy createNewProject()
-    {
-        initialize();
-        return impl.createNewProject();
-    }
-    
-    /**
-     * Determines whether the specified project is faceted. This method will return
-     * <code>false</code> if the project is not accessible.
-     * 
-     * @param project the project to check
-     * @return <code>true</code> if the project is faceted
-     * @throws CoreException if failed while reading project metadata
-     * @since 1.4
-     */
-    
-    public static boolean isFacetedProject( final IProject project )
-    
-        throws CoreException
-        
-    {
-        return ( project.isAccessible() && project.isNatureEnabled( FacetedProjectNature.NATURE_ID ) );
-    }
-    
-    /**
-     * <p>Determines whether the specified project facet is installed in the
-     * provided project. Returns <code>false</code> if the project is not 
-     * accessible, the project is not faceted or the facet id is unrecognized.</p>
-     * 
-     * <p>This method is explicitly designed to avoid activation of the Faceted
-     * Project Framework if the project is not faceted. For the code that
-     * operates in the context where it can be assumed that the framework has
-     * started already, better performance can be achieved by storing 
-     * {@link IProjectFacet} and {@link IProjectFacetVersion} instances using the
-     * singleton pattern and using the
-     * {@link IFacetedProject#hasProjectFacet(IProjectFacet)} or
-     * {@link IFacetedProject#hasProjectFacet(IProjectFacetVersion)} methods.</p>
-     * 
-     * <p>This method is equivalent to calling 
-     * {@link #hasProjectFacet(IProject,String,String)} with <code>null</code>
-     * version expression parameter.</p>
-     * 
-     * @param project the project to check for the facet presence
-     * @param fid the project facet id
-     * @return <code>true</code> if specified project has the given facet
-     * @throws CoreException if failed while reading faceted project metadata
-     */
-
-    public static boolean hasProjectFacet( final IProject project,
-                                           final String fid )
-    
-        throws CoreException
-        
-    {
-        return hasProjectFacet( project, fid, null );
-    }
-    
-    /**
-     * <p>Determines whether the specified project facet is installed in the
-     * provided project. Returns <code>false</code> if the project is not 
-     * accessible or the project is not faceted. Works even if the facet or
-     * the version that is being checked is not defined.</p>
-     * 
-     * <p>This method is explicitly designed to avoid activation of the Faceted
-     * Project Framework if the project is not faceted. For the code that
-     * operates in the context where it can be assumed that the framework has
-     * started already, better performance can be achieved by storing 
-     * {@link IProjectFacet} and {@link IProjectFacetVersion} instances using the
-     * singleton pattern and using the
-     * {@link IFacetedProject#hasProjectFacet(IProjectFacet)} or
-     * {@link IFacetedProject#hasProjectFacet(IProjectFacetVersion)} methods.</p>
-     * 
-     * @param project the project to check for the facet presence
-     * @param fid the project facet id
-     * @param vexpr the version match expression, or <code>null</code> to
-     *   match any version
-     * @return <code>true</code> if specified project has the given facet
-     * @throws CoreException if failed while reading faceted project metadata;
-     *   if the version expression is invalid
-     */
-
-    public static boolean hasProjectFacet( final IProject project,
-                                           final String fid,
-                                           final String vexpr )
-    
-        throws CoreException
-        
-    {
-        if( project.isAccessible() &&
-            project.isNatureEnabled( FacetedProjectNature.NATURE_ID ) )
-        {
-            initialize();
-            
-            final IFacetedProject fproj = ProjectFacetsManager.create( project );
-            
-            if( fproj != null )
-            {
-                if( ProjectFacetsManager.isProjectFacetDefined( fid ) )
-                {
-                    final IProjectFacet f = ProjectFacetsManager.getProjectFacet( fid );
-                    
-                    if( vexpr == null )
-                    {
-                        return fproj.hasProjectFacet( f );
-                    }
-                    else
-                    {
-                        final IProjectFacetVersion fv = fproj.getInstalledVersion( f );
-                        
-                        if( fv != null )
-                        {
-                            final VersionExpr2 expr = new VersionExpr2( vexpr );
-                            return expr.check( fv.getVersionString() );
-                        }
-                    }
-                }
-                else
-                {
-                    for( IProjectFacetVersion fv : fproj.getProjectFacets() )
-                    {
-                        final IProjectFacet f = fv.getProjectFacet();
-                        
-                        if( f.getId().equals( fid ) )
-                        {
-                            if( vexpr == null )
-                            {
-                                return true;
-                            }
-                            else
-                            {
-                                final VersionExpr2 expr = new VersionExpr2( vexpr );
-                                return expr.check( fv.getVersionString() );
-                            }
-                        }
-                    }
-                }
-            }
-        }
-        
-        return false;
-    }
-    
-    /**
-     * Adds a faceted project listener that will be notified when the selected events in the faceted
-     * project life cycle occur. The listener will apply to all faceted projects that exist in the
-     * workspace now and in the future (until the listener is removed or the workspace is closed).
-     * 
-     * @param listener the faceted project listener
-     * @param types the types of the events to listen for
-     * @throws IllegalArgumentException if <code>listener</code> parameter is <code>null</code> or
-     *   the <code>types</code> parameter is <code>null</code> or empty.
-     * @see #removeListener(IFacetedProjectListener)
-     * @see IFacetedProject#addListener(IFacetedProjectListener,IFacetedProjectEvent.Type[])
-     * @see IFacetedProject#removeListener(IFacetedProjectListener)
-     */
-    
-    public static void addListener( final IFacetedProjectListener listener,
-                                    final IFacetedProjectEvent.Type... types )
-    {
-        initialize();
-        impl.addListener( listener, types );
-    }
-    
-    public static void addListener( final IFacetedProjectFrameworkListener listener,
-                                    final IFacetedProjectFrameworkEvent.Type... types )
-    {
-        initialize();
-        impl.addListener( listener, types );
-    }
-    
-    /**
-     * Removes the faceted project listener that was previously registered using the
-     * {@link #addListener(IFacetedProjectListener,IFacetedProjectEvent.Type[])} method. If the
-     * specified listener is not present in the listener registry, this call will be ignored.
-     * 
-     * @param listener the faceted project listener
-     * @throws IllegalArgumentException if <code>listener</code> parameter is <code>null</code>
-     * @see #addListener(IFacetedProjectListener,IFacetedProjectEvent.Type[])
-     * @see IFacetedProject#addListener(IFacetedProjectListener,IFacetedProjectEvent.Type[])
-     * @see IFacetedProject#removeListener(IFacetedProjectListener)
-     */
-    
-    public static void removeListener( final IFacetedProjectListener listener )
-    {
-        initialize();
-        impl.removeListener( listener );
-    }
-    
-    public static void removeListener( final IFacetedProjectFrameworkListener listener )
-    {
-        initialize();
-        impl.removeListener( listener );
-    }
-    
-    /**
-     * Returns the global preferences store for the specified facet. These preferences are stored
-     * in workspace metadata.
-     * 
-     * @param facet project facet
-     * @return the global preferences store for the specified facet
-     * @throws BackingStoreException if failed while reading from the backing store
-     * @since WTP 1.4
-     */
-    
-    public static Preferences getPreferences( final IProjectFacet facet )
-    
-        throws BackingStoreException
-        
-    {
-        initialize();
-        return impl.getPreferences( facet );
-    }
-    
-    private static synchronized void initialize()
-    {
-        if( impl == null )
-        {
-            impl = FacetedProjectFrameworkImpl.getInstance();
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/FacetedProjectFrameworkException.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/FacetedProjectFrameworkException.java
deleted file mode 100644
index 4af53f4..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/FacetedProjectFrameworkException.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package org.eclipse.wst.common.project.facet.core;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * Exception that can be thrown in various places in the framework instead of a more generic
- * {@link CoreException}. 
- * 
- * @since 1.4
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class FacetedProjectFrameworkException
-
-    extends CoreException
-    
-{
-    private static final long serialVersionUID = 1L;
-    
-    private boolean expected;
-    
-    /**
-     * Creates a new faceted project framework exception instance.
-     * 
-     * @param status the status object with information about the failure
-     */
-
-    public FacetedProjectFrameworkException( final IStatus status ) 
-    {
-        super( status );
-        
-        this.expected = false;
-    }
-    
-    /**
-     * Returns whether this exception is expected from thrower's perspective. This can be used
-     * as a signal by handlers to alter the way the exception is presented to the user.
-     * 
-     * @return <code>true</code> if the exception is expected from thrower's perspective
-     */
-    
-    public boolean isExpected()
-    {
-        return this.expected;
-    }
-    
-    /**
-     * Sets whether this exception is expected from thrower's perspective. This can be used
-     * as a signal by handlers to alter the way the exception is presented to the user.
-     * 
-     * @param expected if the exception is expected from thrower's perspective
-     */
-    
-    public void setExpected( final boolean expected )
-    {
-        this.expected = expected;
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IActionConfig.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IActionConfig.java
deleted file mode 100644
index 3cdaba7..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IActionConfig.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public interface IActionConfig
-{
-    void setVersion( IProjectFacetVersion fv );
-    void setProjectName( String pjname );
-    IStatus validate();
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IActionConfigFactory.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IActionConfigFactory.java
deleted file mode 100644
index 39e4559..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IActionConfigFactory.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * This interface is implemented in order to provide a method for creating 
- * a config object that will be used for parameterizing the facet action
- * delegate.
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public interface IActionConfigFactory
-{
-    /**
-     * Creates a new facet action configuration object. The new configuration
-     * object should ideally be populated with reasonable defaults.
-     * 
-     * @return a new facet action configuration object
-     * @throws CoreException if failed while creating the configuration object
-     */
-    
-    Object create()
-    
-        throws CoreException;
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IActionDefinition.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IActionDefinition.java
deleted file mode 100644
index b0819f3..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IActionDefinition.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.util.Map;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject.Action;
-
-/**
- * An action is an operation on a single facet within a faceted project to
- * install, uninstall, or change the version of the facet. An action definition
- * represents the information supplied by the facet author regarding the
- * implementation of an action. A single action definition can apply to multiple
- * facet versions. For instance, the facet author may choose to supply one
- * action definition for all versions of his facet. 
- * 
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public interface IActionDefinition
-{
-    /**
-     * The name of the property that's used to constrain the starting version
-     * of the VERSION_CHANGE action definition.
-     */
-    
-    static final String PROP_FROM_VERSIONS = "from.versions"; //$NON-NLS-1$
-    
-    /**
-     * Returns the id of the action definition. If not explicitly specified, a
-     * default action id is generated that takes the following form:
-     * [facet-id]#[version-expression]#[action-type](#[prop.name]=[prop.value])*.
-     * 
-     * @return the id of the action definition
-     */
-    
-    String getId();
-    
-    /**
-     * Returns the project facet that this action definition is associated with.
-     * 
-     * @return the project facet that this action definition is associated with
-     */
-    
-    IProjectFacet getProjectFacet();
-    
-    /**
-     * Returns the version expression that controls which facet versions this
-     * action definition applies to.
-     * 
-     * @return the version expression that controls which facet versions this
-     *   action definition applies to
-     */
-    
-    IVersionExpr getVersionExpr();
-    
-    /**
-     * Returns the action type, such as <code>INSTALL</code>, <code>UNINSTALL</code>,
-     * or <code>VERSION_CHANGE</code>.
-     * 
-     * @return the action type
-     */
-    
-    Action.Type getActionType();
-    
-    /**
-     * Returns the properties that further specify action behavior and 
-     * applicability.
-     * 
-     * @return the properties of this action definition
-     */
-    
-    Map<String,Object> getProperties();
-    
-    /**
-     * Returns the property value corresponding to the provided name.
-     * 
-     * @param name the name of the property
-     * @return the value of the property
-     */
-    
-    Object getProperty( String name );
-    
-    /**
-     * Creates a new config object that can be used for parameterizing the
-     * execution of this action. If this action definition does not specify a
-     * config object factory, this method will return <code>null</code>.
-     * 
-     * @return the new config object
-     * @throws CoreException if failed while instantiating the config object
-     *   factory or creating the config object
-     */
-
-    Object createConfigObject()
-    
-        throws CoreException;
-    
-    /**
-     * Creates a new config object that can be used for parameterizing the
-     * execution of this action. If this action definition does not specify a
-     * config object factory, this method will return <code>null</code>.
-     * 
-     * @param fv the actual facet version that this config object will be used
-     *   with; should be one of the versions matched by the version expression
-     *   specified for this action definition
-     * @param pjname the project name
-     * @return the new config object
-     * @throws CoreException if failed while instantiating the config object
-     *   factory or creating the config object
-     * @deprecated
-     */
-    
-    Object createConfigObject( IProjectFacetVersion fv,
-                               String pjname )
-    
-        throws CoreException;
-    
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/ICategory.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/ICategory.java
deleted file mode 100644
index 04fa482..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/ICategory.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.util.Set;
-
-import org.eclipse.core.runtime.IAdaptable;
-
-/**
- * Models a grouping of project facets that are intended to be selected and 
- * deselected as a set. This interface is not intended to be implemented by 
- * clients.
- * 
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public interface ICategory
-
-    extends IAdaptable
-    
-{
-    String getId();
-    String getPluginId();
-    String getLabel();
-    String getDescription();
-    
-    /**
-     * Returns the project facets that compose this category.
-     * 
-     * @return the member project facets
-     */
-    
-    Set<IProjectFacet> getProjectFacets();
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IConstraint.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IConstraint.java
deleted file mode 100644
index 671f14f..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IConstraint.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-
-/**
- * Models a single constraint in the constraint expression. 
- * 
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public interface IConstraint 
-{
-    /**
-     * The enumeration of operator types.
-     */
-    
-    static final class Type
-    {
-        private static final Map<String,Type> items = new HashMap<String,Type>();
-        public static final Type AND = new Type( "and" ); //$NON-NLS-1$
-        public static final Type OR = new Type( "or" ); //$NON-NLS-1$
-        public static final Type REQUIRES = new Type( "requires" ); //$NON-NLS-1$
-        public static final Type CONFLICTS = new Type( "conflicts" ); //$NON-NLS-1$
-        
-        private final String name;
-        
-        private Type( final String name )
-        {
-            this.name = name;
-            items.put( name, this );
-        }
-        
-        public static Type valueOf( final String name )
-        {
-            return items.get( name.toLowerCase() );
-        }
-        
-        public String name()
-        {
-            return this.name;
-        }
-        
-        public String toString()
-        {
-            return this.name;
-        }
-    }
-    
-    /**
-     * Returns the operator type
-     * 
-     * @return the operator type
-     */
-    
-    Type getType();
-    
-    /**
-     * Returns the list operands.
-     * 
-     * @return the list of operands
-     */
-    
-    List<Object> getOperands();
-    
-    /**
-     * Returns the operand at the specified position.
-     * 
-     * @param index the position of the operand in the list of operands
-     * @return the operand
-     */
-    
-    Object getOperand( int index );
-    
-    /**
-     * Checks this constraint against the given set of project facets.
-     * 
-     * @param facets a set of project facets
-     * @return a status object with severity of {@link IStatus#OK} if the
-     *   constraint was satisfied or otherwise a {@link MultiStatus} composed of
-     *   individual status objects for each of the problems
-     */
-    
-    IStatus check( Collection<IProjectFacetVersion> facets );
-    
-    /**
-     * Checks this constraint against the given set of project facets.
-     * 
-     * @param facets a set of project facets
-     * @param validateSoftDependencies if <code>true</code> soft dependencies
-     *   will be treated as required
-     * @return a status object with severity of {@link IStatus#OK} if the
-     *   constraint was satisfied or otherwise a {@link MultiStatus} composed of
-     *   individual status objects for each of the problems
-     */
-
-    IStatus check( Collection<IProjectFacetVersion> facets,
-                   boolean validateSoftDependencies );
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IDefaultVersionProvider.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IDefaultVersionProvider.java
deleted file mode 100644
index d4964b5..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IDefaultVersionProvider.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-/**
- * This interface can be implemented in order to provide the facet version that
- * is selected by default. If a version provider is not specified, the latest
- * version will be used. Note that if a runtime is selected, the runtime can 
- * override this default with a version best suited for that runtime. 
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public interface IDefaultVersionProvider
-{
-    /**
-     * Returns the facet version that should be selected by default.
-     * 
-     * @return the facet version that should be selected by default
-     */
-    
-    IProjectFacetVersion getDefaultVersion();
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IDelegate.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IDelegate.java
deleted file mode 100644
index 1716ec7..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IDelegate.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-
-/**
- * This interface is implemented in order to provide logic associated with
- * a particular event in project facet's life cycle, such as install or 
- * uninstall.
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public interface IDelegate 
-{
-    /**
-     * The method that's called to execute the delegate.
-     * 
-     * @param project the workspace project
-     * @param fv the project facet version that this delegate is handling; this
-     *   is useful when sharing the delegate among several versions of the same
-     *   project facet or even different project facets
-     * @param config the configuration object, or <code>null</code> if defaults
-     *   should be used
-     * @param monitor the progress monitor
-     * @throws CoreException if the delegate fails for any reason
-     */
-    
-    void execute( IProject project,
-                  IProjectFacetVersion fv,
-                  Object config,
-                  IProgressMonitor monitor )
-    
-        throws CoreException;
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IDynamicPreset.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IDynamicPreset.java
deleted file mode 100644
index 99bf022..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IDynamicPreset.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.util.Map;
-
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-
-/**
- * A dynamic preset is type of preset that needs to be resolved before it can be used. The resolve
- * operation relies the {@link IPresetFactory} specified when the dynamic preset is registered via
- * the <code>presets</code> extension point and can take into account the context in which the 
- * preset will be used. 
- * 
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- * @since 2.0
- */
-
-public interface IDynamicPreset
-
-    extends IPreset
-    
-{
-    /**
-     * The key of the context map entry whose value is an {@link IFacetedProjectBase} object.
-     * 
-     * @since 3.0
-     */
-    
-    static final String CONTEXT_KEY_FACETED_PROJECT = "CONTEXT_KEY_FACETED_PROJECT"; //$NON-NLS-1$
-    
-    /**
-     * The key of the context map entry whose value is a set of {@link IProjectFacet} objects
-     * representing the fixed facets.
-     */
-    
-    static final String CONTEXT_KEY_FIXED_FACETS = "CONTEXT_KEY_FIXED_FACETS"; //$NON-NLS-1$
-    
-    /**
-     * The key of the context map entry whose value is the primary runtime ({@link IRuntime}) or
-     * <code>null</code> if no runtime has been selected.
-     */
-    
-    static final String CONTEXT_KEY_PRIMARY_RUNTIME = "CONTEXT_KEY_PRIMARY_RUNTIME";  //$NON-NLS-1$
-    
-    /**
-     * Resolves the dynamic preset using the provided context information. If this preset is not
-     * applicable to the provided context, this method will return <code>null</code>.
-     * 
-     * @param context the information about context that this preset will be used in
-     * @return the resolved preset or <code>null</code>
-     */
-   
-    IPreset resolve( Map<String,Object> context );
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProject.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProject.java
deleted file mode 100644
index c341679..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProject.java
+++ /dev/null
@@ -1,438 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-import org.osgi.service.prefs.BackingStoreException;
-import org.osgi.service.prefs.Preferences;
-
-/**
- * This interface is used for manipulating the set of facets installed on a
- * project. Use {@link ProjectFacetsManager#create(IProject)} to get an instance 
- * of this interface.
- * 
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public interface IFacetedProject 
-
-    extends IFacetedProjectBase
-    
-{
-    /**
-     * Represents a single action such as installing or uninstalling a project
-     * facet.
-     */
-    
-    static final class Action
-    {
-        /**
-         * The action type enumeration.
-         */
-        
-        public static final class Type
-        {
-            private static final Map<String,Type> items = new HashMap<String,Type>();
-            public static final Type INSTALL = new Type( "INSTALL" ); //$NON-NLS-1$
-            public static final Type UNINSTALL = new Type( "UNINSTALL" ); //$NON-NLS-1$
-            public static final Type VERSION_CHANGE = new Type( "VERSION_CHANGE" ); //$NON-NLS-1$
-            
-            static
-            {
-                // Backwards compatibility.
-                
-                items.put( "install", INSTALL ); //$NON-NLS-1$
-                items.put( "uninstall", UNINSTALL ); //$NON-NLS-1$
-                items.put( "version-change", VERSION_CHANGE ); //$NON-NLS-1$
-            }
-            
-            private final String name;
-            
-            private Type( final String name )
-            {
-                this.name = name;
-                items.put( name, this );
-            }
-            
-            public static Type valueOf( final String name )
-            {
-                return items.get( name );
-            }
-            
-            public String name()
-            {
-                return this.name;
-            }
-            
-            public String toString()
-            {
-                return this.name;
-            }
-        }
-        
-        private final Type type;
-        private final IProjectFacetVersion fv;
-        private final Object config;
-        
-        /**
-         * Creates a new action.
-         * 
-         * @param type action type
-         * @param fv the the project facet version
-         * @param config the configuration object, or <code>null</code>
-         */
-        
-        public Action( final Type type,
-                       final IProjectFacetVersion fv,
-                       final Object config )
-        {
-            if( type == null || fv == null )
-            {
-                throw new IllegalArgumentException();
-            }
-            
-            this.type = type;
-            this.fv = fv;
-            this.config = config;
-        }
-        
-        /**
-         * Returns the action type
-         * 
-         * @return the action type
-         */
-        
-        public Type getType()
-        {
-            return this.type;
-        }
-        
-        /**
-         * Returns the descriptor for the project facet version that this 
-         * action will be manipulating.
-         * 
-         * @return the descriptor for the project facet version that this action 
-         *   will be manipulating
-         */
-        
-        public IProjectFacetVersion getProjectFacetVersion()
-        {
-            return this.fv;
-        }
-        
-        /**
-         * Returns the configuration object associated with this action, if any.
-         * 
-         * @return the configuration object associated with this action, or
-         *   <code>null</code>
-         */
-        
-        public Object getConfig()
-        {
-            return this.config;
-        }
-        
-        public boolean equals( final Object obj )
-        {
-            if( ! ( obj instanceof Action ) )
-            {
-                return false;
-            }
-            else
-            {
-                final Action action = (Action) obj;
-                
-                return this.type == action.type && 
-                       this.fv.equals( action.fv );
-            }
-        }
-        
-        public int hashCode()
-        {
-            return this.type.hashCode() ^ this.fv.hashCode();
-        }
-        
-        public String toString()
-        {
-            final StringBuffer buf = new StringBuffer();
-            
-            buf.append( this.type.toString() );
-            buf.append( '[' );
-            buf.append( this.fv.getProjectFacet().getId() );
-            buf.append( ' ' );
-            buf.append( this.fv.getVersionString() );
-            buf.append( ']' );
-            
-            return buf.toString();
-        }
-    }
-    
-    IProjectFacetVersion getInstalledVersion( IProjectFacet f );
-    
-    /**
-     * <p>Installs a project facet on this project. This method is equivalent to 
-     * calling the {@link #modify(Set, IProgressMonitor)} method with a single 
-     * install action.</p>
-     * 
-     * <p>This method should not be called from the UI thread as it is long-
-     * running and may trigger resource change events. Although this framework
-     * is safe, there is no guarantee that other bundles are UI-safe and the
-     * risk of UI deadlock is high.</p>
-     * 
-     * @param fv the descriptor of the project facet version that should be 
-     *   installed
-     * @param config the associated configuration object, or <code>null</code>
-     * @param monitor a progress monitor, or null if progress reporting and 
-     *   cancellation are not desired
-     * @throws CoreException if anything goes wrong during install
-     */
-    
-    void installProjectFacet( IProjectFacetVersion fv,
-                              Object config,
-                              IProgressMonitor monitor)
-    
-        throws CoreException;
-    
-    /**
-     * <p>Uninstalls a project facet from this project. This method is 
-     * equivalent to calling the {@link #modify(Set, IProgressMonitor)} method 
-     * with a single uninstall action.</p>
-     * 
-     * <p>This method should not be called from the UI thread as it is long-
-     * running and may trigger resource change events. Although this framework
-     * is safe, there is no guarantee that other bundles are UI-safe and the
-     * risk of UI deadlock is high.</p>
-     * 
-     * @param fv the descriptor of the project facet version that should be 
-     *   uninstalled
-     * @param config the associated configuration object, or <code>null</code>
-     * @param monitor a progress monitor, or null if progress reporting and 
-     *   cancellation are not desired
-     * @throws CoreException if anything goes wrong during uninstall
-     */
-    
-    void uninstallProjectFacet( IProjectFacetVersion fv,
-                                Object config,
-                                IProgressMonitor monitor )
-    
-        throws CoreException;
-    
-    /**
-     * <p>Modifies the set of project facets installed on this project by 
-     * performing a series of actions such as install and uninstall.</p>
-     * 
-     * <p>This method should not be called from the UI thread as it is long-
-     * running and may trigger resource change events. Although this framework
-     * is safe, there is no guarantee that other bundles are UI-safe and the
-     * risk of UI deadlock is high.</p>
-     * 
-     * @param actions the set of actions to apply to the project
-     * @param monitor a progress monitor, or null if progress reporting and 
-     *   cancellation are not desired
-     * @throws CoreException if anything goes wrong while applying actions
-     */
-    
-    void modify( Set<Action> actions,
-                 IProgressMonitor monitor )
-    
-        throws CoreException;
-    
-    /**
-     * Sets the set of fixed project facets for this project. Fixed facets 
-     * cannot be uninstalled, but the installed version can be changed.
-     * 
-     * @param facets the set of project facets to mark as fixed
-     * @throws CoreException if failed while updating the set of fixed project
-     *   facets
-     */
-
-    void setFixedProjectFacets( Set<IProjectFacet> facets )
-    
-        throws CoreException;
-    
-    /**
-     * 
-     * @deprecated use getTargetRuntimes() and getPrimaryRuntime() instead
-     */
-    
-    IRuntime getRuntime();
-    
-    /**
-     * 
-     * <p>This method should not be called from the UI thread as it is long-
-     * running and may trigger resource change events. Although this framework
-     * is safe, there is no guarantee that other bundles are UI-safe and the
-     * risk of UI deadlock is high.</p>
-     * 
-     * @param monitor a progress monitor, or null if progress reporting and 
-     *   cancellation are not desired
-     * @deprecated use setTargetRuntimes() and setPrimaryRuntime() instead
-     */
-    
-    void setRuntime( IRuntime runtime,
-                     IProgressMonitor monitor )
-    
-        throws CoreException;
-    
-    /**
-     * <p>Sets the runtimes that this project will target. When a project 
-     * targets a runtime, the set of facets that can be installed is limited to 
-     * those supported by that runtime. When a project targets multiple 
-     * runtimes, the set of applicable facets is limited to those supported by 
-     * all targeted runtimes.<p>
-     * 
-     * <p>If the existing primary runtime is <code>null</code> or is not part of 
-     * the new set of targeted runtimes, the primary runtime will be reset to 
-     * one picked at random from the new set. If the new set is empty, the 
-     * primary runtime will be set to <code>null</code>.</p>
-     * 
-     * <p>This method should not be called from the UI thread as it is long-
-     * running and may trigger resource change events. Although this framework
-     * is safe, there is no guarantee that other bundles are UI-safe and the
-     * risk of UI deadlock is high.</p>
-     * 
-     * @param runtimes the new set of runtimes to target
-     * @param monitor a progress monitor, or <code>null</code> if progress
-     *   reporting and cancelation are not desired
-     * @throws CoreException if the project contains one or more facets that
-     *   are not supported by all of the new runtimes; if failed for any other 
-     *   reason
-     */
-    
-    void setTargetedRuntimes( Set<IRuntime> runtimes,
-                              IProgressMonitor monitor )
-    
-        throws CoreException;
-    
-    /**
-     * <p>Adds a new runtime to the set of runtimes targeted by this project.
-     * If the set of targeted runtimes has been empty prior to this call, this
-     * runtime will become the primary runtime</p>
-     *  
-     * <p>This method should not be called from the UI thread as it is long-
-     * running and may trigger resource change events. Although this framework
-     * is safe, there is no guarantee that other bundles are UI-safe and the
-     * risk of UI deadlock is high.</p>
-     * 
-     * @param runtime the runtime
-     * @param monitor a progress monitor, or <code>null</code> if progress
-     *   reporting and cancelation are not desired
-     * @throws CoreException if the project contains one or more facets that
-     *   are not supported by this runtime; if failed for any other reason
-     */
-    
-    void addTargetedRuntime( IRuntime runtime,
-                             IProgressMonitor monitor )
-    
-        throws CoreException;
-    
-    /**
-     * <p>Removes a runtime from the set of runtimes targeted by this project.
-     * If this runtime has been the primary runtime prior to this call, a new
-     * primary will be automatically assigned (unless the list of target
-     * runtimes becomes empty, in which case the primary runtime will be set
-     * to <code>null</code>).</p>
-     * 
-     * <p>This method should not be called from the UI thread as it is long-
-     * running and may trigger resource change events. Although this framework
-     * is safe, there is no guarantee that other bundles are UI-safe and the
-     * risk of UI deadlock is high.</p>
-     * 
-     * @param runtime the runtime to remove
-     * @param monitor a progress monitor, or <code>null</code> if progress
-     *   reporting and cancelation are not desired
-     * @throws CoreException if failed for any reason
-     */
-    
-    void removeTargetedRuntime( IRuntime runtime,
-                                IProgressMonitor monitor )
-    
-        throws CoreException;
-
-    /**
-     * <p>Sets the primary target runtime for this project. The new primary has
-     * to be one of the runtimes currently targeted by the project.
-     * 
-     * <p>This method should not be called from the UI thread as it is long-
-     * running and may trigger resource change events. Although this framework
-     * is safe, there is no guarantee that other bundles are UI-safe and the
-     * risk of UI deadlock is high.</p>
-     * 
-     * @param runtime the new primary runtime
-     * @param monitor a progress monitor, or <code>null</code> if progress
-     *   reporting and cancelation are not desired
-     * @throws CoreException if the primary runtime is not one of the runtimes
-     *   currently targeted by the project; if failed for any other reason
-     */
-
-    void setPrimaryRuntime( IRuntime runtime,
-                            IProgressMonitor monitor )
-    
-        throws CoreException;
-    
-    IFacetedProjectWorkingCopy createWorkingCopy();
-    
-    IMarker createErrorMarker( String message )
-    
-        throws CoreException;
-    
-    IMarker createErrorMarker( String type,
-                               String message )
-    
-        throws CoreException;
-    
-    IMarker createWarningMarker( String message )
-    
-        throws CoreException;
-    
-    IMarker createWarningMarker( String type,
-                                 String message )
-    
-        throws CoreException;
-    
-    /**
-     * @deprecated
-     */
-    
-    void addListener( org.eclipse.wst.common.project.facet.core.IFacetedProjectListener listener );
-    
-    /**
-     * @deprecated
-     */
-    
-    void removeListener( org.eclipse.wst.common.project.facet.core.IFacetedProjectListener listener );
-    
-    /**
-     * Returns the project preferences store for the specified facet. These preferences are stored
-     * in project metadata and stay with the project when project is copied.
-     * 
-     * @param facet project facet
-     * @return the project preferences store for the specified facet
-     * @throws BackingStoreException if failed while reading from the backing store
-     * @since 1.4
-     */
-    
-    Preferences getPreferences( IProjectFacet facet )
-    
-        throws BackingStoreException;
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProjectBase.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProjectBase.java
deleted file mode 100644
index beb88a3..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProjectBase.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.util.Set;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectEvent;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-
-/**
- * This interface is used for manipulating the set of facets installed on a
- * project. Use {@link ProjectFacetsManager#create(IProject)} to get an instance 
- * of this interface.
- * 
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public interface IFacetedProjectBase
-{
-    static final int PROBLEM_PROJECT_NAME = 1;
-    static final int PROBLEM_OTHER = -1;
-    
-    IProject getProject();
-    
-    /**
-     * Returns the set of fixed project facets for this project. Fixed facets 
-     * cannot be uninstalled, but the installed version can be changed.
-     * 
-     * @return the set of fixed project facets for this project
-     */
-    
-    Set<IProjectFacet> getFixedProjectFacets();
-    
-    boolean isFixedProjectFacet( IProjectFacet facet );
-    
-    /**
-     * Returns the set of project facets currently installed on this project.
-     * 
-     * @return the set of project facets currently installed on this project 
-     */
-    
-    Set<IProjectFacetVersion> getProjectFacets();
-    
-    IProjectFacetVersion getProjectFacetVersion( IProjectFacet f );
-    
-    /**
-     * Determines whether any version of the specified project facet is 
-     * installed on this project.
-     * 
-     * @param f the project facet descriptor
-     * @return <code>true</code> if any version of the specified project facet 
-     *   is installed on this project, <code>false</code> otherwise
-     */
-    
-    boolean hasProjectFacet( IProjectFacet f );
-    
-    /**
-     * Determines whether the specfied project facet version is installed on 
-     * this project.
-     * 
-     * @param fv the project facet version descriptor
-     * @return <code>true</code> if the specified project facet version is 
-     *   installed on this project, <code>false</code> otherwise
-     */
-    
-    boolean hasProjectFacet( IProjectFacetVersion fv );
-    
-    /**
-     * Determines whether this project (in it's current state) can be targeted to the provided
-     * runtime. This determination is made by looking at the facets that are currently installed
-     * and checking them against the set of facets known to be supported by the provided runtime.
-     * 
-     * @param runtime the runtime to check
-     * @return <code>true</code> if this project can target the provided runtime and
-     *   <code>false</code> otherwise
-     * @since WTP 2.0
-     */
-    
-    boolean isTargetable( IRuntime runtime );
-    
-    /**
-     * Checks whether this project currently targets the specified runtime. 
-     * 
-     * @param runtime the runtime to check
-     * @return <code>true</code> if this project currently targets the specified runtime and
-     *   <code>false</code> otherwise
-     * @since WTP 2.0
-     */
-    
-    boolean isTargeted( IRuntime runtime );
-    
-    /**
-     * <p>Returns the set of all runtimes that this project is targeting. When a
-     * project targets a runtime, the set of facets that can be installed is
-     * limited to those supported by that runtime. When a project targets
-     * multiple runtimes, the set of applicable facets is limited to those
-     * supported by all targeted runtimes.</p>
-     * 
-     * @return the set of targeted runtimes
-     */
-    
-    Set<IRuntime> getTargetedRuntimes();
-    
-    /**
-     * <p>Returns the primary target runtime for this project. There is always
-     * a primary runtime unless the list of target runtimes is empty.</p>
-     * 
-     * @return the primary runtime, or <code>null</code>
-     */
-    
-    IRuntime getPrimaryRuntime();
-
-    /**
-     * Performs a variety of consistency checks over the faceted project. The
-     * result of the validation is returned as a status object. 
-     *
-     * @param monitor a progress monitor, or <code>null</code> if progress
-     *    reporting and cancellation are not desired
-     * @return a status object with code <code>IStatus.OK</code> if this
-     *   faceted project is valid, otherwise a status object indicating what is 
-     *   wrong with it
-     */
-    
-    IStatus validate( IProgressMonitor monitor );
-
-    /**
-     * Performs a variety of consistency checks over the faceted project. The
-     * result of the validation is returned as a status object. This method is
-     * equivalent to calling validate with a <code>null</code> progress monitor. 
-     *
-     * @return a status object with code <code>IStatus.OK</code> if this
-     *   faceted project is valid, otherwise a status object indicating what is 
-     *   wrong with it
-     */
-    
-    IStatus validate();
-    
-    /**
-     * Adds a faceted project listener that will be notified when the selected events in the faceted
-     * project life cycle occur. The listener will apply only to this project.
-     * 
-     * @param listener the faceted project listener
-     * @param types the types of the events to listen for
-     * @throws IllegalArgumentException if <code>listener</code> parameter is <code>null</code> or
-     *   the <code>types</code> parameter is <code>null</code> or empty.
-     * @see #removeListener(IFacetedProjectListener)
-     * @see FacetedProjectFramework#addListener(IFacetedProjectListener,IFacetedProjectEvent.Type[])
-     * @see FacetedProjectFramework#removeListener(IFacetedProjectListener)
-     */
-    
-    void addListener( IFacetedProjectListener listener,
-                      IFacetedProjectEvent.Type... types );
-    
-    /**
-     * Removes the faceted project listener that was previously registered using the
-     * {@link #addListener(IFacetedProjectListener,IFacetedProjectEvent.Type[])} method. If the
-     * specified listener is not present in the listener registry, this call will be ignored.
-     * 
-     * @param listener the faceted project listener
-     * @throws IllegalArgumentException if <code>listener</code> parameter is <code>null</code>
-     * @see #addListener(IFacetedProjectListener,IFacetedProjectEvent.Type[])
-     * @see FacetedProjectFramework#addListener(IFacetedProjectListener,IFacetedProjectEvent.Type[])
-     * @see FacetedProjectFramework#removeListener(IFacetedProjectListener)
-     */
-    
-    void removeListener( IFacetedProjectListener listener );
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProjectListener.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProjectListener.java
deleted file mode 100644
index de0cae1..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProjectListener.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- * @deprecated use the IFacetedProjectListener class from the facet.core.events package
- */
-
-public interface IFacetedProjectListener
-{
-    void projectChanged();
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProjectTemplate.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProjectTemplate.java
deleted file mode 100644
index f9a0a4f..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProjectTemplate.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.util.Set;
-
-/**
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public interface IFacetedProjectTemplate
-{
-    String getId();
-    String getLabel();
-    
-    /**
-     * @return the set of fixed project facets
-     */
-    
-    Set<IProjectFacet> getFixedProjectFacets();
-    IPreset getInitialPreset();
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProjectValidator.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProjectValidator.java
deleted file mode 100644
index 9c24b63..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProjectValidator.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public interface IFacetedProjectValidator
-{
-    /**
-     * The marker type that should be used as the base for all markers reported
-     * by the faceted project validator.
-     */
-    
-    static final String BASE_MARKER_ID
-        = FacetCorePlugin.PLUGIN_ID + ".validation.marker"; //$NON-NLS-1$
-    
-    void validate( IFacetedProject fproj )
-    
-        throws CoreException;
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProjectWorkingCopy.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProjectWorkingCopy.java
deleted file mode 100644
index cb42080..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProjectWorkingCopy.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.util.Map;
-import java.util.Set;
-import java.util.SortedSet;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject.Action;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-
-/**
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public interface IFacetedProjectWorkingCopy
-
-    extends IFacetedProjectBase
-    
-{
-    String getProjectName();
-    
-    // Only works if the model wasn't created based on an existing project.
-    void setProjectName( String name );
-    
-    IPath getProjectLocation();
-    void setProjectLocation( IPath location );
-    
-    IFacetedProject getFacetedProject();
-    
-    Map<IProjectFacet,SortedSet<IProjectFacetVersion>> getAvailableFacets();
-
-    boolean isFacetAvailable( IProjectFacet f );
-    
-    boolean isFacetAvailable( IProjectFacetVersion fv );
-    
-    SortedSet<IProjectFacetVersion> getAvailableVersions( IProjectFacet f );
-    
-    IProjectFacetVersion getHighestAvailableVersion( IProjectFacet f );
-    
-    void setFixedProjectFacets( Set<IProjectFacet> fixed );
-    
-    void setProjectFacets( Set<IProjectFacetVersion> facets );
-    
-    void addProjectFacet( IProjectFacetVersion fv );
-    
-    void removeProjectFacet( IProjectFacet f );
-    
-    void removeProjectFacet( IProjectFacetVersion fv );
-    
-    void changeProjectFacetVersion( IProjectFacetVersion fv );
-    
-    Set<IPreset> getAvailablePresets();
-    
-    IPreset getSelectedPreset();
-    
-    void setSelectedPreset( String presetId );
-    
-    /**
-     * Returns the default configuration preset.
-     * 
-     * <p>Note that calling this method from a dynamic preset factory implementation can result
-     * in out-of-date information being returned as this preset many not have been refreshed yet.
-     * Extenders wishing to reference default configuration when implementing a new dynamic preset
-     * should extend DefaultConfigurationPresetFactory class instead.</p>
-     * 
-     * @return the default configuration preset
-     */
-    
-    IPreset getDefaultConfiguration();
-    
-    /**
-     * Returns the minimal configuration preset.
-     * 
-     * <p>Note that calling this method from a dynamic preset factory implementation can result
-     * in out-of-date information being returned as this preset many not have been refreshed yet.
-     * Extenders wishing to reference default configuration when implementing a new dynamic preset
-     * should extend MinimalConfigurationPresetFactory class instead.</p>
-     * 
-     * @return the minimal configuration preset
-     */
-    
-    IPreset getMinimalConfiguration();
-
-    Set<IRuntime> getTargetableRuntimes();
-    
-    void refreshTargetableRuntimes();
-    
-    void setTargetedRuntimes( Set<IRuntime> runtimes );
-    
-    void addTargetedRuntime( IRuntime runtime );
-    
-    void removeTargetedRuntime( IRuntime runtime );
-    
-    void setPrimaryRuntime( IRuntime runtime );
-    
-    Set<Action> getProjectFacetActions();
-    
-    Action getProjectFacetAction( IProjectFacet facet );
-    
-    void setProjectFacetActionConfig( IProjectFacet facet,
-                                      Object newActionConfig );    
-    
-    /**
-     * @since 1.4
-     */
-    
-    boolean isDirty();
-    
-    void commitChanges( IProgressMonitor monitor )
-    
-        throws CoreException;
-    
-    void mergeChanges( IFacetedProjectWorkingCopy fpjwc );
-    
-    void revertChanges();
-    
-    IFacetedProjectWorkingCopy clone();
-    
-    void dispose();
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IGroup.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IGroup.java
deleted file mode 100644
index 8b11353..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IGroup.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.util.Set;
-
-/**
- * A group is a named collection of {@link IProjectFacetVersion}  objects. It is 
- * used primarily as a parameter to the "requires" and "conflicts" constraints 
- * and allows a level of indirection where a facet does not need to know about 
- * all the members of the group. A given project facet version can belong to 
- * several groups.
- * 
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public interface IGroup 
-{
-    /**
-     * Returns the id of this group.
-     * 
-     * @return the id of this group
-     */
-    
-    String getId();
-    
-    /**
-     * Returns the group label. The label should be used when presenting the
-     * group to the user.
-     * 
-     * @return the group label
-     */
-
-    String getLabel();
-    
-    /**
-     * Returns the group description.
-     * 
-     * @return the group description
-     */
-
-    String getDescription();
-    
-    /**
-     * Returns the set of member project facets.
-     * 
-     * @return the set of member project facets
-     */
-    
-    Set<IProjectFacetVersion> getMembers();
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IListener.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IListener.java
deleted file mode 100644
index 71c57ce..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IListener.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public interface IListener
-{
-    void handle();
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IPreset.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IPreset.java
deleted file mode 100644
index fcbdd88..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IPreset.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.util.Set;
-
-/**
- * A preset is a user convenience mechanism for quickly selecting a predefined set of project 
- * facets. Presets can be defined by plugin writers through the supplied <code>presets</code> 
- * extension point as well as by end users. User-defined presets are stored in the workspace.
- * 
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public interface IPreset
-{
-    /**
-     * The enumberation of preset types.
-     * 
-     * @since 2.0
-     */
-    
-    enum Type
-    {
-        /**
-         * Static presets are created using the <code>presets</code> extension point and are fully
-         * specified in the extension point. 
-         */
-        
-        STATIC,
-        
-        /**
-         * Dynamic presets are created by registering a factory in the <code>presets</code>
-         * extension point and are not fully specified until they are resolved within the context
-         * of use. To resolve a dynamic preset, cast the preset object to {@link IDynamicPreset} and
-         * then use the {@link IDynamicPreset#resolve(java.util.Map)} method. 
-         */
-        
-        DYNAMIC,
-        
-        /**
-         * User presets are created using the <code>ProjectFacetsManager.definePreset()</code>
-         * methods and are stored in the workspace.
-         */
-        
-        USER_DEFINED
-    }
-    
-    /**
-     * Returns the id of the preset.
-     * 
-     * @return the id of the preset
-     */
-    
-    String getId();
-    
-    /**
-     * Returns the type of the preset. If the preset type is {@link Type#DYNAMIC}, then the preset
-     * object can be cast to {@link IDynamicPreset}.
-     * 
-     * @return the type of the preset
-     * @since 2.0
-     */
-    
-    Type getType();
-
-    /**
-     * Returns the label that should be used when presenting the preset to the user.
-     * 
-     * @return the preset label
-     */
-    
-    String getLabel();
-    
-    /**
-     * Returns the description of the preset.
-     * 
-     * @return the description of the preset
-     */
-    
-    String getDescription();
-    
-    /**
-     * Returns the project facets that are part of this preset.
-     * 
-     * @return project facets that are part of this preset
-     */
-
-    Set<IProjectFacetVersion> getProjectFacets();
-    
-    /**
-     * Indicates whether the preset is user defined. A user-defined preset is
-     * stored in the workspace and can be deleted.
-     * 
-     * @return <code>true</code> if the preset is user-defined,
-     *   <code>false</code> otherwise
-     * @deprecated use the {@link #getType()} method instead
-     */
-    
-    boolean isUserDefined();
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IPresetFactory.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IPresetFactory.java
deleted file mode 100644
index d52f4c8..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IPresetFactory.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.util.Map;
-
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * A preset factory is used for creating a dynamic preset. Unlike a static preset, which is fully
- * specified from the start, a dynamic preset uses a factory to synthesize the preset definition on 
- * the fly based on the context in which it will be used. 
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- * @since 2.0
- */
-
-public interface IPresetFactory
-{
-    /**
-     * The factory method for creating a preset definition. The definition contains all of the 
-     * information necessary for the system to create a preset. The factory can take into account 
-     * the context that the preset will be used in when creating a preset definition. See
-     * {@link IDynamicPreset} for documentation on what type of information the context can contain.
-     *
-     * @param presetId the id of the preset
-     * @param context the information about context that this preset will be used in
-     * @return the created preset definition or <code>null</code> if this factory is not applicable 
-     *   to the provided context
-     * @throws CoreException if failed while creating the preset definition
-     */
-    
-    PresetDefinition createPreset( String presetId,
-                                   Map<String,Object> context )
-    
-        throws CoreException;
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IProjectFacet.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IProjectFacet.java
deleted file mode 100644
index ed9c649..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IProjectFacet.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.util.Comparator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-
-/**
- * Contains metadata that describes a project facet. This interface is not 
- * intended to be implemented by clients.
- * 
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public interface IProjectFacet
-
-    extends IAdaptable
-    
-{
-    /**
-     * The name of the property that's used for suggesting to the framework that this facet's
-     * version does not convey a special meaning and should be hidden where possible.
-     * 
-     * @since 3.0
-     */
-    
-    static final String PROP_HIDE_VERSION = "hide.version"; //$NON-NLS-1$
-    
-    /**
-     * Returns the project facet identifier. 
-     * 
-     * @return the project facet identifier
-     */
-
-    String getId();
-    
-    /**
-     * Returns the id of the plugin that defines this project facet. This method
-     * will return <code>null</code> if this facet is not defined. 
-     * 
-     * @return the id of the plugin that defines this project facet, or
-     *   <code>null</code>
-     */
-    
-    String getPluginId();
-    
-    /**
-     * Returns the project facet label. The label should be used when presenting
-     * the project facet to the user.
-     * 
-     * @return the project facet label
-     */
-
-    String getLabel();
-    
-    /**
-     * Returns the project facet description.
-     * 
-     * @return the project facet description
-     */
-
-    String getDescription();
-    
-    /**
-     * Returns the category, if any, that this project facet belongs to.
-     * 
-     * @return the category that this project facet belongs to, or 
-     *   <code>null</code>
-     */
-    
-    ICategory getCategory();
-    
-    /**
-     * Returns the descriptors of all versions of this project facet.
-     * 
-     * @return the descriptors of all versions of this project facet
-     */
-    
-    Set<IProjectFacetVersion> getVersions();
-    
-    Set<IProjectFacetVersion> getVersions( String expr )
-    
-        throws CoreException;
-    
-    /**
-     * Determines whether the specified project facet version exists.
-     * 
-     * @param version the verson string
-     * @return <code>true</code> if the specified project facet version exists,
-     *   <code>false</code> otherwise
-     */
-    
-    boolean hasVersion( String version );
-    
-    /**
-     * Returns the descriptor of the given project facet version.
-     * 
-     * @param version the version string
-     * @return the descriptor of the given project facet version, or 
-     *   <code>null</code>
-     */
-        
-    IProjectFacetVersion getVersion( String version );
-    
-    /**
-     * Returns the latest version of the project facet that exists.
-     * 
-     * @return returns the latest version of the project facet
-     */
-    
-    IProjectFacetVersion getLatestVersion()
-    
-    	throws VersionFormatException, CoreException;
-
-    /**
-     * Returns the latest version of the project facet that is supported by the
-     * given runtime.
-     * 
-     * @param runtime the runtime
-     * @return returns the latest version of the project facet that is supported
-     *   by the given runtime
-     */
-    
-    IProjectFacetVersion getLatestSupportedVersion( IRuntime runtime )
-    
-        throws CoreException;
-    
-    /**
-     * Returns the facet version that should be selected by default. If the
-     * default version is not explicitly specified in the facet definition, the
-     * latest version (as specified by {@link #getLatestVersion()} method) will
-     * be returned. 
-     * 
-     * @return the facet version that should be selected by default
-     */
-    
-    IProjectFacetVersion getDefaultVersion();
-
-    /**
-     * Returns a sorted list containing the descriptors of all versions of this 
-     * project facet. 
-     * 
-     * @param ascending whether version descriptors should be sorted in 
-     *   ascending order
-     * @return a sorted list containing the descriptors of all versions of this 
-     *   project facet
-     */
-    
-    List<IProjectFacetVersion> getSortedVersions( boolean ascending )
-    
-        throws VersionFormatException, CoreException;
-    
-    /**
-     * Returns the version comparator specified for this project facet. If no 
-     * version comparator is specified, this method will return an instance of 
-     * the {@link DefaultVersionComparator}.
-     * 
-     * @return the version comparator specified for this project facet
-     */
-    
-    Comparator<String> getVersionComparator()
-    
-        throws CoreException;
-    
-    /**
-     * Returns the properties that specify additional information regarding this facet. Some of
-     * the properties are recognized and processed by the faceted project framework, while others
-     * are there for the benefit of framework's users.
-     * 
-     * @return the properties of this project facet
-     * @since 3.0
-     */
-    
-    Map<String,Object> getProperties();
-    
-    /**
-     * Returns the property value corresponding to the provided name. Properties specify additional
-     * information regarding this facet. Some of the properties are recognized and processed by the
-     * faceted project framework, while others are there for the benefit of framework's users.
-     * 
-     * @param name the name of the property
-     * @return the value of the property
-     * @since 3.0
-     */
-    
-    Object getProperty( String name );
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IProjectFacetVersion.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IProjectFacetVersion.java
deleted file mode 100644
index 5675190..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IProjectFacetVersion.java
+++ /dev/null
@@ -1,213 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject.Action;
-
-/**
- * Contains metadata that describes a specific version of a project facet. This 
- * interface is not intended to be implemented by by clients.
- * 
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public interface IProjectFacetVersion
-
-    extends Comparable, IVersion
-    
-{
-    /**
-     * Returns the project facet descriptor.
-     * 
-     * @return the project facet descriptor
-     */
-    
-    IProjectFacet getProjectFacet();
-    
-    /**
-     * Returns the version string.
-     * 
-     * @return the version string
-     */
-    
-    String getVersionString();
-    
-    /**
-     * Returns the id of the plugin that defines this project facet version. 
-     * This method will return <code>null</code> if this version is not defined. 
-     * 
-     * @return the id of the plugin that defines this project facet version, or
-     *   <code>null</code>
-     */
-    
-    String getPluginId();
-    
-    /**
-     * Returns the constraint that has to be satisfied prior to installing this
-     * project facet.
-     * 
-     * @return the constraint that has to be satisfied prior to installing this 
-     *   project facet
-     */
-    
-    IConstraint getConstraint();
-    
-    /**
-     * Determines whether this project facet version supports a particular 
-     * action type. For instance, some project facets may not be uninstallable, 
-     * in which case they will not support <code>Action.Type.UNINSTALL</code>.
-     * 
-     * @param base the set of facets currently installed in the project that
-     *   the desired action type would be executed against
-     * @param type action type
-     * @return <code>true</code> if and only if this project facet supports the 
-     *   provided action type
-     */
-    
-    boolean supports( Set<IProjectFacetVersion> base,
-                      Action.Type type );
-    
-    /**
-     * Determines whether this project facet version supports a particular 
-     * action type. For instance, some project facets may not be uninstallable, 
-     * in which case they will not support <code>Action.Type.UNINSTALL</code>.
-     * 
-     * @param type action type
-     * @return <code>true</code> if this project facet supports the provided 
-     *   action type, <code>false</code> otherwise
-     * @deprecated use {@link #supports( Set, IFacetedProject.Action.Type)} instead
-     */
-    
-    boolean supports( Action.Type type );
-    
-    /**
-     * Returns all of the action definitions for this project facet version.
-     * 
-     * @return all of the action definitions for this project facet version
-     */
-    
-    Set<IActionDefinition> getActionDefinitions();
-    
-    /**
-     * Returns the action definitions corresponding to a particular action type
-     * over this project facet version. For <code>INSTALL</code> and
-     * <code>UNINSTALL</code> action types, this method will return a set of
-     * length 0 or 1. For <code>VERSION_CHANGE</code> action type, the returned
-     * set may contain more than one item as there may exist multiple action
-     * definitions for converting from various versions.
-     * 
-     * @param type action type
-     * @return a set containing action definitions corresponding to a particular
-     *   action type over this project facet version 
-     */
-    
-    Set<IActionDefinition> getActionDefinitions( Action.Type type );
-    
-    /**
-     * Returns the action definition corresponding to a particular action type
-     * over this project facet version. The {@link #supports( Set, IFacetedProject.Action.Type )} 
-     * method can be used to check whether the action is supported prior to
-     * calling this method.
-     * 
-     * @param base the set of facets currently installed in the project that
-     *   the desired action type would be executed against
-     * @param type action type
-     * @return the action definition corresponding to a particular action type
-     *   over this project facet version
-     * @throws CoreException if this project facet version does not support the
-     *   provided action type
-     */
-    
-    IActionDefinition getActionDefinition( Set<IProjectFacetVersion> base,
-                                           Action.Type type )
-    
-        throws CoreException;
-    
-    /**
-     * Creates a new instance of the config object associated with the specified
-     * action on this facet. Will return <code>null</code> if the action 
-     * requires no config.
-     * 
-     * @param type the type of the action.
-     * @param pjname the name of the project that this action will be executed
-     *   on
-     * @return the action config object, or <code>null</code>
-     * @throws CoreException if this project facet version does not support the
-     *   specified action type or if failed while creating the action config
-     *   object
-     * @deprecated this method will not behave correctly in presence of multiple
-     * action definitions of the same type as can be the case with VERSION_CHANGE
-     * actions; instead use IActionDefinition.createConfigObject()
-     */
-    
-    Object createActionConfig( Action.Type type,
-                               String pjname )
-    
-        throws CoreException;
-    
-    /**
-     * @deprecated this method will not behave correctly in presence of multiple
-     * action definitions of the same type as can be the case with VERSION_CHANGE
-     * actions; instead compare appropriate IActionDefinition objects directly 
-     */
-    
-    boolean isSameActionConfig( Action.Type type,
-                                IProjectFacetVersion fv )
-    
-        throws CoreException;
-    
-    /**
-     * Determines whether this facet version is valid for projects that have
-     * the provided set of fixed facets. The determination is done by checking 
-     * to see whether this facet or any of its dependencies are in conflict with
-     * any of the fixed facets.
-     * 
-     * @param fixed the set of fixed facets
-     * @return <code>true</code> if this facet version is valid for the projects
-     *   that have the provided set of fixed facets
-     */
-    
-    boolean isValidFor( Set<IProjectFacet> fixed );
-    
-    boolean conflictsWith( IProjectFacetVersion fv );
-
-    /**
-     * Returns the properties that specify additional information regarding this facet version. 
-     * Some of the properties are recognized and processed by the faceted project framework, while 
-     * others are there for the benefit of framework's users.
-     * 
-     * @return the properties of this project facet version
-     * @since 3.0
-     */
-    
-    Map<String,Object> getProperties();
-    
-    /**
-     * Returns the property value corresponding to the provided name. Properties specify additional
-     * information regarding this facet version. Some of the properties are recognized and processed
-     * by the faceted project framework, while others are there for the benefit of framework's 
-     * users.
-     * 
-     * @param name the name of the property
-     * @return the value of the property
-     * @since 3.0
-     */
-    
-    Object getProperty( String name );
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IRuntimeChangedEvent.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IRuntimeChangedEvent.java
deleted file mode 100644
index 70ebc1e..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IRuntimeChangedEvent.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-
-/**
- * Describes the runtime changed event to the RUNTIME_CHANGED event handlers.
- *
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- * @deprecated use the IFacetedProjectListener class from the facet.core.events package instead
- *   of the event handler extension point
- */
-
-public interface IRuntimeChangedEvent
-{
-    /**
-     * Returns the runtime previously associated with the project.
-     * 
-     * @return the runtime previously associated with the project, or
-     *   <code>null</code>
-     */
-    
-    IRuntime getOldRuntime();
-    
-    /**
-     * Returns the runtime that's now associated with the project.
-     * 
-     * @return the runtime that's now associated with the project, or
-     *   <code>null</code>
-     */
-    
-    IRuntime getNewRuntime();
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IVersion.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IVersion.java
deleted file mode 100644
index 86f1cbc..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IVersion.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-/**
- * This interface should not be referenced directly by clients. Client code should only
- * reference <code>IProjectFacetVersion</code> and <code>IRuntimeComponentVersion</code>,
- * which extend this interface.
- * 
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public abstract interface IVersion
-
-    extends Comparable
-    
-{
-    String getVersionString();
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IVersionExpr.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IVersionExpr.java
deleted file mode 100644
index dbae708..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IVersionExpr.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-/**
- * The compiled form of a version expression. A version expression is used to
- * specify one or more versions.
- * 
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public interface IVersionExpr
-{
-    /**
-     * Contains the symbol used to represent the wildcard. The wildcard matches
-     * any version. Note that it is not possible to use the wildcard to match
-     * part of the version string. 
-     */
-    
-    static final String WILDCARD_SYMBOL = "*"; //$NON-NLS-1$
-    
-    /**
-     * Evaluates the version expression against the specified version. Returns
-     * <code>true</code> if and only if the version expression matches the
-     * specified version.
-     * 
-     * @param version the version object to check against the version expression
-     * @return <code>true</code> if and only if the version expression matches
-     *   the specified version
-     */
-    
-    boolean check( IVersion version );
-    
-    /**
-     * @deprecated use the check method instead
-     */
-     
-    boolean evaluate( String version );
-    
-    /**
-     * Returns human-readable form of the version expression that uses
-     * descriptive terms rather than symbols.
-     * 
-     * @return human-readable form of the version expression
-     */
-    
-    String toDisplayString();
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/MinimalConfigurationPresetFactory.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/MinimalConfigurationPresetFactory.java
deleted file mode 100644
index df24bbd..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/MinimalConfigurationPresetFactory.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.internal.DefaultFacetsExtensionPoint;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-
-/**
- * Preset factory for the <code>minimal.configuration</code> preset. This preset only contains
- * fixed facets. The version of the facets are calculated as follows: 
- * 
- * <ol>
- *   <li>If a runtime is selected, the versions are looked up using 
- *     {@link IRuntime#getDefaultFacets(Set)}.</li>
- *   <li>If no runtime is selected, this versions are the default versions as specified 
- *     by {@link IProjectFacet#getDefaultVersion()}.
- * </ol>
- * 
- * @since 3.0
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public class MinimalConfigurationPresetFactory
-
-    implements IPresetFactory
-    
-{
-    public static final String PRESET_ID = "minimal.configuration"; //$NON-NLS-1$
-    
-    public PresetDefinition createPreset( final String presetId,
-                                          final Map<String,Object> context ) 
-    
-        throws CoreException
-        
-    {
-        final IFacetedProjectBase fproj 
-            = (IFacetedProjectBase) context.get( IDynamicPreset.CONTEXT_KEY_FACETED_PROJECT );
-    
-        final Set<IProjectFacetVersion> facets = new HashSet<IProjectFacetVersion>();
-        
-        final Set<IProjectFacetVersion> defaultFacets 
-            = DefaultFacetsExtensionPoint.getDefaultFacets( fproj );
-        
-        if( defaultFacets == null )
-        {
-            return null;
-        }
-        
-        for( IProjectFacet f : fproj.getFixedProjectFacets() )
-        {
-            facets.add( findProjectFacetVersion( defaultFacets, f ) );
-        }
-        
-        return new PresetDefinition( Resources.presetLabel, Resources.presetDescription, facets );
-    }
-    
-    private static IProjectFacetVersion findProjectFacetVersion( final Set<IProjectFacetVersion> facets,
-                                                                 final IProjectFacet facet )
-    {
-        for( IProjectFacetVersion fv : facets )
-        {
-            if( fv.getProjectFacet() == facet )
-            {
-                return fv;
-            }
-        }
-        
-        throw new IllegalStateException();
-    }
-    
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String presetLabel;
-        public static String presetDescription;
-        
-        static
-        {
-            initializeMessages( MinimalConfigurationPresetFactory.class.getName(), 
-                                Resources.class );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/MinimalConfigurationPresetFactory.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/MinimalConfigurationPresetFactory.properties
deleted file mode 100644
index bbd6e5e..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/MinimalConfigurationPresetFactory.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-presetLabel = Minimal Configuration
-presetDescription = The most conservative starting point. Only the required facets are installed. Additional facets can later be installed to add new functionality to the project.
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/PresetDefinition.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/PresetDefinition.java
deleted file mode 100644
index 1755af3..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/PresetDefinition.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-/**
- * The preset definition is used in several contexts as a means of describing a preset. It is
- * different from {@link IPreset} in that the preset definition is not an actual preset that's
- * registered with the system. 
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- * @since 2.0
- */
-
-public final class PresetDefinition
-{
-    private final String label;
-    private final String description;
-    private final Set<IProjectFacetVersion> facets;
-    
-    /**
-     * Creates a new preset definition.
-     * 
-     * @param label the label that should be used when presenting the preset to the user
-     * @param description the description of the preset
-     * @param facets the facets that comprise the preset
-     */
-    
-    public PresetDefinition( final String label,
-                             final String description,
-                             final Set<IProjectFacetVersion> facets )
-    {
-        this.label = label;
-        this.description = description;
-        this.facets = Collections.unmodifiableSet( new HashSet<IProjectFacetVersion>( facets ) );
-        
-        for( IProjectFacetVersion fv : facets )
-        {
-            if( fv == null )
-            {
-                throw new IllegalArgumentException();
-            }
-        }
-    }
-    
-    /**
-     * Returns the label that should be used when presenting the preset to the user.
-     * 
-     * @return the preset label
-     */
-    
-    public String getLabel()
-    {
-        return this.label;
-    }
-
-    /**
-     * Returns the description of the preset.
-     * 
-     * @return the description of the preset
-     */
-    
-    public String getDescription()
-    {
-        return this.description;
-    }
-    
-    /**
-     * Returns the project facets that are part of this preset.
-     * 
-     * @return project facets that are part of this preset
-     */
-
-    public Set<IProjectFacetVersion> getProjectFacets()
-    {
-        return this.facets;
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/ProjectFacetsManager.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/ProjectFacetsManager.java
deleted file mode 100644
index 4a0ac51..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/ProjectFacetsManager.java
+++ /dev/null
@@ -1,436 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject.Action;
-import org.eclipse.wst.common.project.facet.core.internal.FacetedProjectFrameworkImpl;
-
-/**
- * This is the entry point to the project facet framework API. From here, you 
- * can (among other things) list available project facets and create instances 
- * of {@link IFacetedProject}.
- * 
- * @noinstantiate This class is not intended to be instantiated by clients.
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class ProjectFacetsManager 
-{
-    private static FacetedProjectFrameworkImpl impl = FacetedProjectFrameworkImpl.getInstance();
-    
-    private ProjectFacetsManager() {}
-    
-    /**
-     * Returns all of the available project facets.
-     * 
-     * @return a set containing all of the available project facets
-     */
-    
-    public static Set<IProjectFacet> getProjectFacets()
-    {
-        return impl.getProjectFacets();
-    }
-
-    /**
-     * Determines whether a given project facet id is recognized.
-     * 
-     * @param id the id of the project facet
-     * @return <code>true</code> if the project facet id is recognized, 
-     *   <code>false</code> otherwise 
-     */
-    
-    public static boolean isProjectFacetDefined( final String id )
-    {
-        return impl.isProjectFacetDefined( id );
-    }
-    
-    /**
-     * Returns the project facet descriptor corresponding to the specified id.
-     * 
-     * @param id the id of the project facet
-     * @return the project facet descriptor
-     * @throws IllegalArgumentException if id is not found
-     */
-    
-    public static IProjectFacet getProjectFacet( final String id )
-    {
-        return impl.getProjectFacet( id );
-    }
-    
-    /**
-     * Returns all of the available project facet action definitions.
-     * 
-     * @return a set containing all of the available project facets action
-     *   definitions
-     */
-    
-    public static Set<IActionDefinition> getActionDefinitions()
-    {
-        return impl.getActionDefinitions();
-    }
-    
-    /**
-     * Determines whether a given project facet action id is recognized.
-     * 
-     * @param id the id of the project facet action
-     * @return <code>true</code> if the project facet action id is recognized, 
-     *   <code>false</code> otherwise 
-     */
-    
-    public static boolean isActionDefined( final String id )
-    {
-        return impl.isActionDefined( id );
-    }
-    
-    /**
-     * Returns the project facet action definition corresponding to the 
-     * specified action id.
-     * 
-     * @param id the id of the project facet action
-     * @return the project facet action definition
-     * @throws IllegalArgumentException if id is not found
-     */
-    
-    public static IActionDefinition getActionDefinition( final String id )
-    {
-        return impl.getActionDefinition( id );
-    }
-
-    /**
-     * Returns all of the categories.
-     * 
-     * @return a set containing all of the categories
-     */
-    
-    public static Set<ICategory> getCategories()
-    {
-        return impl.getCategories();
-    }
-
-    /**
-     * Determines whether a given category id is recognized.
-     * 
-     * @param id the id of the category
-     * @return <code>true</code> if the category id is recognized, 
-     *   <code>false</code> otherwise
-     */
-    
-    public static boolean isCategoryDefined( final String id )
-    {
-        return impl.isCategoryDefined( id );
-    }
-    
-    /**
-     * Returns the category corresponding to the specified id.
-     * 
-     * @param id the id of the category
-     * @return the category
-     * @throws IllegalArgumentException if id is not found
-     */
-    
-    public static ICategory getCategory( final String id )
-    {
-        return impl.getCategory( id );
-    }
-    
-    /**
-     * Returns all of the presets.
-     * 
-     * @return a set conaining all of the presets
-     */
-    
-    public static Set<IPreset> getPresets()
-    {
-        return impl.getPresets();
-    }
-    
-    /**
-     * Determines whether a given preset id is recognized.
-     * 
-     * @param id the preset id
-     * @return <code>true</code> if the preset id is recognized,
-     *   <code>false</code> otherwise
-     */
-    
-    public static boolean isPresetDefined( final String id )
-    {
-        return impl.isPresetDefined( id );
-    }
-    
-    /**
-     * Returns the preset corresponding to the specified id.
-     * 
-     * @param id the preset id
-     * @return the preset
-     * @throws IllegalArgumentException if the preset is not found
-     */
-    
-    public static IPreset getPreset( final String id )
-    {
-        return impl.getPreset( id );
-    }
-    
-    /**
-     * Defines a new preset. User-defined presets are stored in the workspace. 
-     * 
-     * @param name the name of the preset
-     * @param facets the set of project facets that the preset should contain
-     * @return the preset
-     */
-    
-    public static IPreset definePreset( final String name,
-                                        final Set<IProjectFacetVersion> facets )
-    {
-        return impl.definePreset( name, facets );
-    }
-    
-    /**
-     * Defines a new preset. User-defined presets are stored in the workspace. 
-     * 
-     * @param name the name of the preset
-     * @param description the description of the preset
-     * @param facets the set of project facets that the preset should contain
-     * @return the preset
-     */
-    
-    public static IPreset definePreset( final String name,
-                                        final String description,
-                                        final Set<IProjectFacetVersion> facets )
-    {
-        return impl.definePreset( name, description, facets );
-    }
-
-    /**
-     * Deletes a preset. Note that only user-defined presets can be deleted.
-     * 
-     * @param preset the preset
-     * @return <code>true</code> if the preset was deleted, or 
-     *   <code>false</code> if the preset was not found or was not user-defined 
-     */
-    
-    public static boolean deletePreset( final IPreset preset )
-    {
-        return impl.deletePreset( preset );
-    }
-    
-    /**
-     * Returns all of the faceted project templates.
-     * 
-     * @return a set conaining all of the faceted project templates
-     */
-    
-    public static Set<IFacetedProjectTemplate> getTemplates()
-    {
-        return impl.getTemplates();
-    }
-    
-    /**
-     * Determines whether a given template id is recognized.
-     * 
-     * @param id the template id
-     * @return <code>true</code> if the template id is recognized,
-     *   <code>false</code> otherwise
-     */
-    
-    public static boolean isTemplateDefined( final String id )
-    {
-        return impl.isTemplateDefined( id );
-    }
-    
-    /**
-     * Returns the faceted project template corresponding to the specified id.
-     * 
-     * @param id the template id
-     * @return the faceted project templte
-     * @throws IllegalArgumentException if the template is not found
-     */
-    
-    public static IFacetedProjectTemplate getTemplate( final String id )
-    {
-        return impl.getTemplate( id );
-    }
-    
-    /**
-     * Returns all of the groups.
-     * 
-     * @return a set containing all of the groups
-     */
-    
-    public static Set<IGroup> getGroups()
-    {
-        return impl.getGroups();
-    }
-
-    /**
-     * Determines whether a given group id is recognized.
-     * 
-     * @param id the group id
-     * @return <code>true</code> if the group id is recognized, 
-     *   <code>false</code> otherwise
-     */
-    
-    public static boolean isGroupDefined( final String id )
-    {
-        return impl.isGroupDefined( id );
-    }
-    
-    /**
-     * Returns the group corresponding to the specified id.
-     * 
-     * @param id the group id
-     * @return the group descriptor
-     * @throws IllegalArgumentException if the group id is not found 
-     */
-    
-    public static IGroup getGroup( final String id )
-    {
-        return impl.getGroup( id );
-    }
-    
-    public static Set<IFacetedProject> getFacetedProjects()
-    
-        throws CoreException
-        
-    {
-        return impl.getFacetedProjects();
-    }
-
-    public static Set<IFacetedProject> getFacetedProjects( final IProjectFacet f )
-    
-        throws CoreException
-        
-    {
-        return impl.getFacetedProjects( f );
-    }
-
-    public static Set<IFacetedProject> getFacetedProjects( final IProjectFacetVersion fv )
-    
-        throws CoreException
-        
-    {
-        return impl.getFacetedProjects( fv );
-    }
-    
-    /**
-     * Creates a wrapper around an <code>IProject</code> that exposes API for
-     * manipulating the set of project facets installed on a project.
-     *  
-     * @param project an Eclipse project
-     * @return an instance of {@link IFacetedProject}, or <code>null</code>
-     * @throws CoreException
-     */
-
-    public static IFacetedProject create( final IProject project )
-    
-        throws CoreException
-        
-    {
-        return impl.create( project );
-    }
-    
-    /**
-     * <p>Creates a wrapper around an <code>IProject</code> that exposes API for
-     * manipulating the set of project facets installed on a project. The
-     * project will be made into a faceted project if necessary.</p>
-     * 
-     * <p>This method should not be called from the UI thread as it is long-
-     * running and may trigger resource change events. Although this framework
-     * is safe, there is no guarantee that other bundles are UI-safe and the
-     * risk of UI deadlock is high.</p>
-     *  
-     * @param project an Eclipse project
-     * @param convertIfNecessary whether the project should be converted into a
-     *   faceted project
-     * @param monitor a progress monitor, or null if progress reporting and 
-     *   cancellation are not desired
-     * @return an instance of {@link IFacetedProject}, or <code>null</code>
-     * @throws CoreException
-     */
-
-    public static IFacetedProject create( final IProject project,
-                                          final boolean convertIfNecessary,
-                                          final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        return impl.create( project, convertIfNecessary, monitor );
-    }
-
-    /**
-     * <p>Creates a new faceted project.</p>
-     * 
-     * <p>This method should not be called from the UI thread as it is long-
-     * running and may trigger resource change events. Although this framework
-     * is safe, there is no guarantee that other bundles are UI-safe and the
-     * risk of UI deadlock is high.</p>
-
-     * @param name project name
-     * @param location 
-     * @param monitor a progress monitor, or null if progress reporting and 
-     *   cancellation are not desired
-     * @return an instance of {@link IFacetedProject}
-     * @throws CoreException
-     */
-    
-    public static IFacetedProject create( final String name,
-                                          final IPath location,
-                                          final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        return impl.create( name, location, monitor );
-    }
-    
-    /**
-     * Checks the validity of applying the specified set of actions to the
-     * specified set of base project facets. Returns the union of all validation
-     * problems that are found.
-     *
-     * @param base the set of project facets that the actions will be applied to
-     * @param actions the set of actions to evaluate
-     * @return a status object with severity of {@link IStatus#OK} if all of the
-     *   constraints were satisfied or otherwise a {@link MultiStatus} composed of
-     *   individual status objects for each of the problems
-     */
-    
-    public static IStatus check( final Set<IProjectFacetVersion> base,
-                                 final Set<Action> actions )
-    {
-        return impl.check( base, actions );
-    }
-    
-    /**
-     * Sorts actions in the order that they should be applied to a project such
-     * that project facet constraints are not violated.
-     * 
-     * @param base the set of project facets that the actions will be applied to
-     * @param actions the list of actions to sort; this list will be modified
-     */
-    
-    public static void sort( final Set<IProjectFacetVersion> base,
-                             final List<IFacetedProject.Action> actions )
-    {
-        impl.sort( base, actions );
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/VersionFormatException.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/VersionFormatException.java
deleted file mode 100644
index 8ecb7e3..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/VersionFormatException.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * The exception that's thrown when version string cannot be parsed.
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public class VersionFormatException 
-    
-    extends RuntimeException 
-    
-{
-    private static final long serialVersionUID = 1L;
-    
-    private final Object comparator;
-    private final String version;
-    
-    public VersionFormatException( final Object comparator,
-                                   final String version )
-    {
-        this.comparator = comparator;
-        this.version = version;
-    }
-    
-    public Object getComparator()
-    {
-        return this.comparator;
-    }
-    
-    public String getVersion()
-    {
-        return this.version;
-    }
-    
-    public String getMessage()
-    {
-        return NLS.bind( Resources.couldNotParse, this.version,
-                         this.comparator.getClass().getName() );
-    }
-    
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String couldNotParse;
-        
-        static
-        {
-            initializeMessages( VersionFormatException.class.getName(), 
-                                Resources.class );
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/VersionFormatException.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/VersionFormatException.properties
deleted file mode 100644
index 4979d82..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/VersionFormatException.properties
+++ /dev/null
@@ -1 +0,0 @@
-couldNotParse = Could not parse "{0}" with {1}.
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IFacetedProjectEvent.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IFacetedProjectEvent.java
deleted file mode 100644
index b3d87e0..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IFacetedProjectEvent.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.events;
-
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectWorkingCopy;
-
-/**
- * The root interface of all faceted project events. 
- * 
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public interface IFacetedProjectEvent
-{
-    enum Type
-    {
-        /**
-         * Type of the event that gets triggered when faceted project metadata is modified in
-         * any way. No detailed information about the change is provided. Note that while listening
-         * for PROJECT_MODIFIED events is guaranteed to catch all other events, the inverse is not
-         * true. Listing on all the other events is not guaranteed to catch all PROJECT_MODIFIED
-         * events. This is because there are circumstances when the system does not have the details
-         * about the type of the change (such as when the faceted project metadata file is modified
-         * on disk).
-         */
-        
-        PROJECT_MODIFIED,
-        
-        /**
-         * Type of the event that gets triggered right before a facet is installed. Events of this 
-         * type can be cast to {@link IProjectFacetActionEvent} interface to get additional details 
-         * about the change. 
-         */
-        
-        PRE_INSTALL,
-        
-        /**
-         * Type of the event that gets triggered right after a facet is installed. Events of this 
-         * type can be cast to {@link IProjectFacetActionEvent} interface to get additional details 
-         * about the change. 
-         */
-        
-        POST_INSTALL,
-        
-        /**
-         * Type of the event that gets triggered right before a facet is uninstalled. Events of this 
-         * type can be cast to {@link IProjectFacetActionEvent} interface to get additional details 
-         * about the change. 
-         */
-        
-        PRE_UNINSTALL,
-        
-        /**
-         * Type of the event that gets triggered right after a facet is uninstalled. Events of this 
-         * type can be cast to {@link IProjectFacetActionEvent} interface to get additional details 
-         * about the change. 
-         */
-        
-        POST_UNINSTALL,
-        
-        /**
-         * Type of the event that gets triggered right before a facet version is changed. Events of 
-         * this type can be cast to {@link IProjectFacetActionEvent} interface to get additional 
-         * details about the change. 
-         */
-        
-        PRE_VERSION_CHANGE,
-        
-        /**
-         * Type of the event that gets triggered right after a facet version is changed. Events of 
-         * this type can be cast to {@link IProjectFacetActionEvent} interface to get additional 
-         * details about the change. 
-         */
-        
-        POST_VERSION_CHANGE,
-        
-        /**
-         * Type of the event that gets triggered when project's fixed facets are changed. Events
-         * of this type can be cast to {@link IFixedFacetsChangedEvent} interface to get additional
-         * details about the change.
-         */
-        
-        FIXED_FACETS_CHANGED,
-        
-        /**
-         * Type of the event that gets triggered when the set of runtimes that the project targets
-         * is changed. Events of this type can be cast to {@link ITargetedRuntimesChangedEvent} 
-         * interface to get additional details about the change.
-         */
-        
-        TARGETED_RUNTIMES_CHANGED,
-        
-        /**
-         * Type of the event that gets triggered when the primary targeted runtime of the project
-         * is changed. Events of this type can be cast to {@link IPrimaryRuntimeChangedEvent}
-         * interface to get additional details about the change. 
-         */
-        
-        PRIMARY_RUNTIME_CHANGED,
-        
-        
-        
-        PROJECT_NAME_CHANGED,
-        PROJECT_FACETS_CHANGED,
-        AVAILABLE_FACETS_CHANGED,
-        AVAILABLE_PRESETS_CHANGED,
-        SELECTED_PRESET_CHANGED,
-        AVAILABLE_RUNTIMES_CHANGED,
-        TARGETABLE_RUNTIMES_CHANGED,
-        VALIDATION_PROBLEMS_CHANGED;
-    }
-    
-    /**
-     * Returns the type of this event.
-     * 
-     * @return the type of this event
-     */
-    
-    Type getType();
-    
-    /**
-     * The affected faceted project.
-     * 
-     * @return the affected faceted project
-     */
-    
-    IFacetedProject getProject();
-    
-    IFacetedProjectWorkingCopy getWorkingCopy();
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IFacetedProjectFrameworkEvent.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IFacetedProjectFrameworkEvent.java
deleted file mode 100644
index 1d50226..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IFacetedProjectFrameworkEvent.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.events;
-
-/**
- * The root interface of all faceted project framework events. 
- * 
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public interface IFacetedProjectFrameworkEvent
-{
-    enum Type
-    {
-        PRESET_ADDED,
-        PRESET_REMOVED
-    }
-    
-    /**
-     * Returns the type of this event.
-     * 
-     * @return the type of this event
-     */
-    
-    Type getType();
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IFacetedProjectFrameworkListener.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IFacetedProjectFrameworkListener.java
deleted file mode 100644
index 79fc77c..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IFacetedProjectFrameworkListener.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.events;
-
-import org.eclipse.wst.common.project.facet.core.FacetedProjectFramework;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-
-/**
- * This interface is implemented by those who wish to receive events when a faceted project is
- * changed. There are three ways to register a listener: (a) using methods on {@link 
- * IFacetedProject}, (b) using methods on {@link FacetedProjectFramework}, or (c) using the provided
- * extension point. Method (a) catches only events for a specific faceted project while methods
- * (b) and (c) catch events for all faceted projects in the workspace.
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public interface IFacetedProjectFrameworkListener
-{
-    /**
-     * This method is called by the framework to notify the listener that an event has occurred.
-     * 
-     * <p>All events except for <code>PROJECT_MODIFIED</code> of this type are triggered in the 
-     * lock context of the operation that caused the original change. This guarantees that the 
-     * project has not changed further from the state it was in after the change was complete, 
-     * however the listener is unable to call any modifier methods on the {@link IFacetedProject} 
-     * interface. To do so, the listener must spin off a thread.</p>
-     * 
-     * <p>It is highly advised that any listener that performs non-critical or long-running tasks 
-     * that can be performed in the background (such as updating UI) do so asynchronously by
-     * spinning off a thread, scheduling a job, etc. This allows the original modification to
-     * complete faster resulting in better perceived responsiveness.</p>
-     * 
-     * @param event the object describing the event
-     */
-    
-    void handleEvent( IFacetedProjectFrameworkEvent event );
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IFacetedProjectListener.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IFacetedProjectListener.java
deleted file mode 100644
index ac8f3d4..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IFacetedProjectListener.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.events;
-
-import org.eclipse.wst.common.project.facet.core.FacetedProjectFramework;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-
-/**
- * This interface is implemented by those who wish to receive events when a faceted project is
- * changed. There are three ways to register a listener: (a) using methods on {@link 
- * IFacetedProject}, (b) using methods on {@link FacetedProjectFramework}, or (c) using the provided
- * extension point. Method (a) catches only events for a specific faceted project while methods
- * (b) and (c) catch events for all faceted projects in the workspace.
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public interface IFacetedProjectListener
-{
-    /**
-     * This method is called by the framework to notify the listener that an event has occurred.
-     * 
-     * <p>All events except for <code>PROJECT_MODIFIED</code> of this type are triggered in the 
-     * lock context of the operation that caused the original change. This guarantees that the 
-     * project has not changed further from the state it was in after the change was complete, 
-     * however the listener is unable to call any modifier methods on the {@link IFacetedProject} 
-     * interface. To do so, the listener must spin off a thread.</p>
-     * 
-     * <p>It is highly advised that any listener that performs non-critical or long-running tasks 
-     * that can be performed in the background (such as updating UI) do so asynchronously by
-     * spinning off a thread, scheduling a job, etc. This allows the original modification to
-     * complete faster resulting in better perceived responsiveness.</p>
-     * 
-     * @param event the object describing the event
-     */
-    
-    void handleEvent( IFacetedProjectEvent event );
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IFixedFacetsChangedEvent.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IFixedFacetsChangedEvent.java
deleted file mode 100644
index a31abc8..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IFixedFacetsChangedEvent.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.events;
-
-import java.util.Set;
-
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-
-/**
- * This interface is implemented by the event object that is used for the FIXED_FACETS_CHANGED 
- * event. 
- * 
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public interface IFixedFacetsChangedEvent
-
-    extends IFacetedProjectEvent
-    
-{
-    /**
-     * The set of facets that were fixed for the project prior to the change.
-     * 
-     * @return the set of old fixed facets
-     */
-    
-    Set<IProjectFacet> getOldFixedFacets();
-    
-    /**
-     * The set of facets that are fixed for the project after the change.
-     * 
-     * @return the set of new fixed facets
-     */
-    
-    Set<IProjectFacet> getNewFixedFacets();
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IPrimaryRuntimeChangedEvent.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IPrimaryRuntimeChangedEvent.java
deleted file mode 100644
index 9349ed7..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IPrimaryRuntimeChangedEvent.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.events;
-
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-
-/**
- * This interface is implemented by the event object that is used for the PRIMARY_RUNTIME_CHANGED 
- * event. 
- * 
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public interface IPrimaryRuntimeChangedEvent
-
-    extends IFacetedProjectEvent
-    
-{
-    /**
-     * Returns the old primary runtime for the project.
-     * 
-     * @return the old primary runtime for the project, or <code>null</code>
-     */
-    
-    IRuntime getOldPrimaryRuntime();
-    
-    /**
-     * Returns the new primary runtime for the project.
-     * 
-     * @return the new primary runtime for the project, or <code>null</code>
-     */
-    
-    IRuntime getNewPrimaryRuntime();
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IProjectFacetActionEvent.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IProjectFacetActionEvent.java
deleted file mode 100644
index 0a9393f..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IProjectFacetActionEvent.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.events;
-
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * This interface is implemented by the event object that is used for the PRE_INSTALL, POST_INSTALL, 
- * PRE_UNINSTALL, POST_UNINSTALL, PRE_VERSION_CHANGE, and POST_VERSION_CHANGE events.
- * 
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public interface IProjectFacetActionEvent
-
-    extends IFacetedProjectEvent
-    
-{
-    /**
-     * The project facet that this event is about.
-     * 
-     * @return the project facet that this event is about.
-     */
-    
-    IProjectFacet getProjectFacet();
-    
-    /**
-     * The version of the project facet that this event is about. In the case of the
-     * PRE_VERSION_CHANGE and POST_VERSION_CHANGE events, this will be the new version.
-     * 
-     * @return the version of the project facet that this event is about
-     */
-    
-    IProjectFacetVersion getProjectFacetVersion();
-    
-    /**
-     * The config object that will be (or was) used for configuring the facet action.
-     * 
-     * @return the config object of the facet action
-     */
-    
-    Object getActionConfig();
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IProjectFacetsChangedEvent.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IProjectFacetsChangedEvent.java
deleted file mode 100644
index 20c934e..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IProjectFacetsChangedEvent.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.events;
-
-import java.util.Set;
-
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public interface IProjectFacetsChangedEvent
-
-    extends IFacetedProjectEvent
-    
-{
-    Set<IProjectFacetVersion> getAddedFacets();
-    Set<IProjectFacetVersion> getRemovedFacets();
-    Set<IProjectFacetVersion> getFacetsWithChangedVersions();
-    Set<IProjectFacetVersion> getAllAffectedFacets();
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/ITargetedRuntimesChangedEvent.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/ITargetedRuntimesChangedEvent.java
deleted file mode 100644
index 8fe96ff..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/ITargetedRuntimesChangedEvent.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.events;
-
-import java.util.Set;
-
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-
-/**
- * This interface is implemented by the event object that is used for the TARGETED_RUNTIMES_CHANGED 
- * event. 
- * 
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public interface ITargetedRuntimesChangedEvent
-
-    extends IFacetedProjectEvent
-    
-{
-    /**
-     * Returns the set runtimes that the project previously targeted.
-     * 
-     * @return the set runtimes that the project previously targeted
-     */
-    
-    Set<IRuntime> getOldTargetedRuntimes();
-
-    /**
-     * Returns the set runtimes that the project now targets.
-     * 
-     * @return the set runtimes that the project now targets
-     */
-    
-    Set<IRuntime> getNewTargetedRuntimes();
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/DelayedClassLoadingListener.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/DelayedClassLoadingListener.java
deleted file mode 100644
index efa73ca..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/DelayedClassLoadingListener.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.events.internal;
-
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.instantiate;
-
-import org.eclipse.wst.common.project.facet.core.FacetedProjectFramework;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectEvent;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener;
-
-/**
- * This listener implementation is used to delay class loading of listeners registered via the
- * <code>listener</code> extension point until the listener is actually invoked. 
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class DelayedClassLoadingListener
-
-    implements IFacetedProjectListener
-    
-{
-    private final String pluginId;
-    private final String listenerClassName;
-    private IFacetedProjectListener listener;
-    
-    public DelayedClassLoadingListener( final String pluginId,
-                                        final String listenerClassName )
-    {
-        this.pluginId = pluginId;
-        this.listenerClassName = listenerClassName;
-        this.listener = null;
-    }
-    
-    public void handleEvent( IFacetedProjectEvent event )
-    {
-        synchronized( this )
-        {
-            if( this.listener == null )
-            {
-                this.listener 
-                    = instantiate( this.pluginId, this.listenerClassName, 
-                                   IFacetedProjectListener.class );
-                
-                if( this.listener == null )
-                {
-                    FacetedProjectFramework.removeListener( this );
-                    return;
-                }
-            }
-        }
-        
-        this.listener.handleEvent( event );
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/EventsExtensionPoint.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/EventsExtensionPoint.java
deleted file mode 100644
index 6186646..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/EventsExtensionPoint.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.events.internal;
-
-import static org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin.PLUGIN_ID;
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.findExtensions;
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.findRequiredAttribute;
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.getTopLevelElements;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectEvent;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener;
-import org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin;
-import org.eclipse.wst.common.project.facet.core.internal.FacetedProjectFrameworkImpl;
-import org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.InvalidExtensionException;
-
-/**
- * Contains the logic for processing the <code>listeners</code> extension point.
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class EventsExtensionPoint
-{
-    public static final String EXTENSION_POINT_ID = "listeners"; //$NON-NLS-1$
-    
-    private static final String EL_LISTENER = "listener"; //$NON-NLS-1$
-    private static final String ATTR_CLASS = "class"; //$NON-NLS-1$
-    private static final String ATTR_EVENT_TYPES = "eventTypes"; //$NON-NLS-1$
-    
-    public static void processExtensions( final FacetedProjectFrameworkImpl framework )
-    {
-        for( IConfigurationElement element 
-             : getTopLevelElements( findExtensions( PLUGIN_ID, EXTENSION_POINT_ID ) ) )
-        {
-            final String pluginId = element.getContributor().getName();
-            
-            if( element.getName().equals( EL_LISTENER ) )
-            {
-                try
-                {
-                    final String className = findRequiredAttribute( element, ATTR_CLASS );
-                    final String eventTypes = element.getAttribute( ATTR_EVENT_TYPES );
-                    
-                    final List<IFacetedProjectEvent.Type> types 
-                        = new ArrayList<IFacetedProjectEvent.Type>();
-                    
-                    if( eventTypes != null )
-                    {
-                        for( String segment : eventTypes.split( "," ) ) //$NON-NLS-1$
-                        {
-                            segment = segment.trim();
-                            
-                            try
-                            {
-                                final String uppercased = segment.toUpperCase();
-                                types.add( IFacetedProjectEvent.Type.valueOf( uppercased ) );
-                            }
-                            catch( IllegalArgumentException e )
-                            {
-                                final String msg 
-                                    = Resources.bind( Resources.invalidEventType, segment, 
-                                                      pluginId );
-                                
-                                FacetCorePlugin.log( msg );
-                            }
-                        }
-                    }
-                    
-                    final IFacetedProjectEvent.Type[] typesArray 
-                        = new IFacetedProjectEvent.Type[ types.size() ];
-                    
-                    types.toArray( typesArray );
-                    
-                    final IFacetedProjectListener listener 
-                        = new DelayedClassLoadingListener( pluginId, className );
-                    
-                    framework.addListener( listener, typesArray );
-                }
-                catch( InvalidExtensionException e )
-                {
-                    // Continue. The problem has been reported to the user via the log.
-                }
-            }
-        }
-    }
-
-    public static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String invalidEventType;
-        
-        static
-        {
-            initializeMessages( EventsExtensionPoint.class.getName(), Resources.class );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/EventsExtensionPoint.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/EventsExtensionPoint.properties
deleted file mode 100644
index b2ba34e..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/EventsExtensionPoint.properties
+++ /dev/null
@@ -1 +0,0 @@
-invalidEventType = "{0}" is not a valid faceted project event type. It is used in {1} plugin.
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/FacetedProjectEvent.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/FacetedProjectEvent.java
deleted file mode 100644
index 979960b..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/FacetedProjectEvent.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.events.internal;
-
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectWorkingCopy;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectEvent;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public class FacetedProjectEvent
-
-    implements IFacetedProjectEvent
-    
-{
-    private final IFacetedProject project;
-    private final IFacetedProjectWorkingCopy workingCopy;
-    private final Type eventType;
-    
-    public FacetedProjectEvent( final IFacetedProject project,
-                                final Type eventType )
-    {
-        this.project = project;
-        this.workingCopy = null;
-        this.eventType = eventType;
-    }
-
-    public FacetedProjectEvent( final IFacetedProjectWorkingCopy workingCopy,
-                                final Type eventType )
-    {
-        this.project = null;
-        this.workingCopy = workingCopy;
-        this.eventType = eventType;
-    }
-    
-    public final IFacetedProject getProject()
-    {
-        return this.project;
-    }
-    
-    public final IFacetedProjectWorkingCopy getWorkingCopy()
-    {
-        return this.workingCopy;
-    }
-
-    public final Type getType()
-    {
-        return this.eventType;
-    }
-    
-    public String toString()
-    {
-        final StringBuilder buf = new StringBuilder();
-        
-        buf.append( "<event project=\"" ); //$NON-NLS-1$
-        buf.append( this.project.getProject().getName() );
-        buf.append( "\" type=\"" ); //$NON-NLS-1$
-        buf.append( this.eventType.name() );
-        buf.append( "\">\n" ); //$NON-NLS-1$
-        
-        toStringInternal( buf );
-        
-        buf.append( "</event>" ); //$NON-NLS-1$
-        
-        return buf.toString();
-    }
-    
-    protected void toStringInternal( final StringBuilder buf )
-    {
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/FacetedProjectFrameworkEvent.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/FacetedProjectFrameworkEvent.java
deleted file mode 100644
index b7d9429..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/FacetedProjectFrameworkEvent.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.events.internal;
-
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectFrameworkEvent;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public class FacetedProjectFrameworkEvent
-
-    implements IFacetedProjectFrameworkEvent
-    
-{
-    private final Type eventType;
-    
-    public FacetedProjectFrameworkEvent( final Type eventType )
-    {
-        this.eventType = eventType;
-    }
-    
-    public final Type getType()
-    {
-        return this.eventType;
-    }
-    
-    public String toString()
-    {
-        final StringBuilder buf = new StringBuilder();
-        
-        buf.append( "<event type=\"" ); //$NON-NLS-1$
-        buf.append( this.eventType.name() );
-        buf.append( "\">\n" ); //$NON-NLS-1$
-        
-        toStringInternal( buf );
-        
-        buf.append( "</event>" ); //$NON-NLS-1$
-        
-        return buf.toString();
-    }
-    
-    protected void toStringInternal( final StringBuilder buf )
-    {
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/FixedFacetsChangedEvent.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/FixedFacetsChangedEvent.java
deleted file mode 100644
index 79db88b..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/FixedFacetsChangedEvent.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.events.internal;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Set;
-import java.util.TreeSet;
-
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.events.IFixedFacetsChangedEvent;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class FixedFacetsChangedEvent
-
-    extends FacetedProjectEvent
-    implements IFixedFacetsChangedEvent
-    
-{
-    private final Set<IProjectFacet> oldFixedFacets;
-    private final Set<IProjectFacet> newFixedFacets;
-    
-    public FixedFacetsChangedEvent( final IFacetedProject project,
-                                    final Set<IProjectFacet> oldFixedFacets,
-                                    final Set<IProjectFacet> newFixedFacets )
-    {
-        super( project, Type.FIXED_FACETS_CHANGED );
-        
-        this.oldFixedFacets = Collections.unmodifiableSet( oldFixedFacets );
-        this.newFixedFacets = Collections.unmodifiableSet( newFixedFacets );
-    }
-
-    public Set<IProjectFacet> getOldFixedFacets()
-    {
-        return this.oldFixedFacets;
-    }
-
-    public Set<IProjectFacet> getNewFixedFacets()
-    {
-        return this.newFixedFacets;
-    }
-    
-    @Override
-    protected void toStringInternal( final StringBuilder buf )
-    {
-        buf.append( "  <old-fixed-facets>\n" ); //$NON-NLS-1$
-        
-        for( IProjectFacet f : sort( this.oldFixedFacets ) )
-        {
-            buf.append( "    <facet id=\"" ); //$NON-NLS-1$
-            buf.append( f.getId() );
-            buf.append( "\"/>\n" ); //$NON-NLS-1$
-        }
-        
-        buf.append( "  </old-fixed-facets>\n" ); //$NON-NLS-1$
-
-        buf.append( "  <new-fixed-facets>\n" ); //$NON-NLS-1$
-        
-        for( IProjectFacet f : sort( this.newFixedFacets ) )
-        {
-            buf.append( "    <facet id=\"" ); //$NON-NLS-1$
-            buf.append( f.getId() );
-            buf.append( "\"/>\n" ); //$NON-NLS-1$
-        }
-        
-        buf.append( "  </new-fixed-facets>\n" ); //$NON-NLS-1$
-    }
-    
-    private static Collection<IProjectFacet> sort( final Collection<IProjectFacet> input )
-    {
-        final Set<IProjectFacet> result = new TreeSet<IProjectFacet>( new FacetComparator() );
-        result.addAll( input );
-        return result;
-    }
-    
-    private static final class FacetComparator 
-    
-        implements Comparator<IProjectFacet>
-    
-    {
-        public int compare( final IProjectFacet f1, 
-                            final IProjectFacet f2 )
-        {
-            return f1.getId().compareTo( f2.getId() );
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/FrameworkListenerRegistry.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/FrameworkListenerRegistry.java
deleted file mode 100644
index 71e3a63..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/FrameworkListenerRegistry.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.events.internal;
-
-import java.util.EnumMap;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.CopyOnWriteArraySet;
-
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectFrameworkEvent;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectFrameworkListener;
-import org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class FrameworkListenerRegistry
-{
-    private final Map<IFacetedProjectFrameworkEvent.Type,Set<IFacetedProjectFrameworkListener>> listeners;
-    
-    public FrameworkListenerRegistry()
-    {
-        this.listeners
-            = new EnumMap<IFacetedProjectFrameworkEvent.Type,Set<IFacetedProjectFrameworkListener>>( IFacetedProjectFrameworkEvent.Type.class );
-        
-        for( IFacetedProjectFrameworkEvent.Type t : IFacetedProjectFrameworkEvent.Type.values() )
-        {
-            this.listeners.put( t, new CopyOnWriteArraySet<IFacetedProjectFrameworkListener>() );
-        }
-    }
-    
-    public void addListener( final IFacetedProjectFrameworkListener listener,
-                             final IFacetedProjectFrameworkEvent.Type... types )
-    {
-        if( listener == null || types == null )
-        {
-            throw new IllegalArgumentException();
-        }
-        
-        for( IFacetedProjectFrameworkEvent.Type type 
-             : ( types.length > 0 ? types : IFacetedProjectFrameworkEvent.Type.values() ) )
-        {
-            this.listeners.get( type ).add( listener );
-        }
-    }
-    
-    public void removeListener( final IFacetedProjectFrameworkListener listener )
-    {
-        if( listener == null )
-        {
-            throw new IllegalArgumentException();
-        }
-        
-        for( Set<IFacetedProjectFrameworkListener> listeners : this.listeners.values() )
-        {
-            listeners.remove( listener );
-        }
-    }
-    
-    public void notifyListeners( final IFacetedProjectFrameworkEvent event )
-    {
-        for( IFacetedProjectFrameworkListener listener : this.listeners.get( event.getType() ) )
-        {
-            try
-            {
-                listener.handleEvent( event );
-            }
-            catch( Exception e )
-            {
-                FacetCorePlugin.log( e );
-            }
-        }
-    }
-    
-    public Set<IFacetedProjectFrameworkListener> getListeners( final IFacetedProjectFrameworkEvent.Type eventType )
-    {
-        return this.listeners.get( eventType );
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/LegacyEventHandlerAdapter.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/LegacyEventHandlerAdapter.java
deleted file mode 100644
index c081f9c..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/LegacyEventHandlerAdapter.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.events.internal;
-
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.instantiate;
-
-import org.eclipse.wst.common.project.facet.core.IDelegate;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.IRuntimeChangedEvent;
-import org.eclipse.wst.common.project.facet.core.IVersionExpr;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectEvent;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener;
-import org.eclipse.wst.common.project.facet.core.events.IPrimaryRuntimeChangedEvent;
-import org.eclipse.wst.common.project.facet.core.events.IProjectFacetActionEvent;
-import org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class LegacyEventHandlerAdapter
-
-    implements IFacetedProjectListener
-    
-{
-    private final IProjectFacet facet;
-    private final IVersionExpr vexpr;
-    private final String pluginId;
-    private Object delegate;
-    
-    public LegacyEventHandlerAdapter( final IProjectFacet facet,
-                                      final IVersionExpr vexpr,
-                                      final String delegatePluginId,
-                                      final String delegateClassName )
-    {
-        this.facet = facet;
-        this.vexpr = vexpr;
-        this.pluginId = delegatePluginId;
-        this.delegate = delegateClassName;
-    }
-    
-    public void handleEvent( final IFacetedProjectEvent event )
-    {
-        if( event instanceof IProjectFacetActionEvent )
-        {
-            final IProjectFacetActionEvent ev = (IProjectFacetActionEvent) event;
-            
-            if( this.facet == ev.getProjectFacet() && 
-                this.vexpr.check( ev.getProjectFacetVersion() ) )
-            {
-                final IDelegate delegate = getDelegate();
-                
-                if( delegate != null )
-                {
-                    try
-                    {
-                        delegate.execute( ev.getProject().getProject(), ev.getProjectFacetVersion(), 
-                                          ev.getActionConfig(), null );
-                    }
-                    catch( Exception e )
-                    {
-                        FacetCorePlugin.log( e );
-                    }
-                }
-            }
-        }
-        else if( event instanceof IPrimaryRuntimeChangedEvent )
-        {
-            final IPrimaryRuntimeChangedEvent ev = (IPrimaryRuntimeChangedEvent) event;
-            final IFacetedProject project = ev.getProject();
-            
-            if( project.hasProjectFacet( this.facet ) )
-            {
-                final IProjectFacetVersion fv = project.getInstalledVersion( this.facet );
-                
-                if( this.vexpr.check( fv ) )
-                {
-                    final RuntimeChangedEvent legacyEvent
-                        = new RuntimeChangedEvent( ev.getOldPrimaryRuntime(), 
-                                                   ev.getNewPrimaryRuntime() );
-                    
-                    final IDelegate delegate = getDelegate();
-                    
-                    if( delegate != null )
-                    {
-                        try
-                        {
-                            delegate.execute( ev.getProject().getProject(), fv, legacyEvent, null );
-                        }
-                        catch( Exception e )
-                        {
-                            FacetCorePlugin.log( e );
-                        }
-                    }
-                }
-            }
-        }
-        else
-        {
-            throw new IllegalStateException();
-        }
-    }
-    
-    private synchronized IDelegate getDelegate()
-    {
-        try
-        {
-            if( this.delegate instanceof String )
-            {
-                this.delegate 
-                    = instantiate( this.pluginId, (String) this.delegate, IDelegate.class );
-            }
-            
-            return (IDelegate) this.delegate;
-        }
-        catch( Exception e )
-        {
-            FacetCorePlugin.log( e );
-        }
-        
-        return null;
-    }
-    
-    private static final class RuntimeChangedEvent
-
-        implements IRuntimeChangedEvent
-        
-    {
-        private final IRuntime oldRuntime;
-        private final IRuntime newRuntime;
-        
-        public RuntimeChangedEvent( final IRuntime oldRuntime,
-                                    final IRuntime newRuntime )
-        {
-            this.oldRuntime = oldRuntime;
-            this.newRuntime = newRuntime;
-        }
-        
-        public IRuntime getOldRuntime()
-        {
-            return this.oldRuntime;
-        }
-    
-        public IRuntime getNewRuntime()
-        {
-            return this.newRuntime;
-        }
-    
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/LegacyListenerAdapter.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/LegacyListenerAdapter.java
deleted file mode 100644
index 8fe19bc..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/LegacyListenerAdapter.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.events.internal;
-
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectEvent;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class LegacyListenerAdapter
-
-    implements IFacetedProjectListener
-    
-{
-    private final org.eclipse.wst.common.project.facet.core.IFacetedProjectListener base;
-    
-    public LegacyListenerAdapter( final org.eclipse.wst.common.project.facet.core.IFacetedProjectListener base )
-    {
-        this.base = base;
-    }
-    
-    public void handleEvent( final IFacetedProjectEvent event )
-    {
-        this.base.projectChanged();
-    }
-    
-    public org.eclipse.wst.common.project.facet.core.IFacetedProjectListener getLegacyListener()
-    {
-        return this.base;
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/PrimaryRuntimeChangedEvent.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/PrimaryRuntimeChangedEvent.java
deleted file mode 100644
index 1ffa090..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/PrimaryRuntimeChangedEvent.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.events.internal;
-
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.events.IPrimaryRuntimeChangedEvent;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class PrimaryRuntimeChangedEvent
-
-    extends FacetedProjectEvent
-    implements IPrimaryRuntimeChangedEvent
-    
-{
-    private final IRuntime oldPrimaryRuntime;
-    private final IRuntime newPrimaryRuntime;
-    
-    public PrimaryRuntimeChangedEvent( final IFacetedProject project,
-                                       final IRuntime oldPrimaryRuntime,
-                                       final IRuntime newPrimaryRuntime )
-    {
-        super( project, Type.PRIMARY_RUNTIME_CHANGED );
-        
-        this.oldPrimaryRuntime = oldPrimaryRuntime;
-        this.newPrimaryRuntime = newPrimaryRuntime;
-    }
-    
-    public IRuntime getOldPrimaryRuntime()
-    {
-        return this.oldPrimaryRuntime;
-    }
-
-    public IRuntime getNewPrimaryRuntime()
-    {
-        return this.newPrimaryRuntime;
-    }
-    
-    @Override
-    protected void toStringInternal( final StringBuilder buf )
-    {
-        buf.append( "  <old-primary-runtime name=\"" ); //$NON-NLS-1$
-        buf.append( this.oldPrimaryRuntime == null ? "<null>" : this.oldPrimaryRuntime.getName() ); //$NON-NLS-1$
-        buf.append( "\"/>\n" ); //$NON-NLS-1$
-
-        buf.append( "  <new-primary-runtime name=\"" ); //$NON-NLS-1$
-        buf.append( this.newPrimaryRuntime == null ? "<null>" : this.newPrimaryRuntime.getName() ); //$NON-NLS-1$
-        buf.append( "\"/>\n" ); //$NON-NLS-1$
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/ProjectFacetActionEvent.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/ProjectFacetActionEvent.java
deleted file mode 100644
index b14bce4..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/ProjectFacetActionEvent.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.events.internal;
-
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.events.IProjectFacetActionEvent;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class ProjectFacetActionEvent
-
-    extends FacetedProjectEvent
-    implements IProjectFacetActionEvent
-    
-{
-    private final IProjectFacetVersion fv;
-    private final Object config;
-    
-    public ProjectFacetActionEvent( final IFacetedProject project,
-                                    final Type eventType,
-                                    final IProjectFacetVersion fv,
-                                    final Object config )
-    {
-        super( project, eventType );
-        
-        this.fv = fv;
-        this.config = config;
-    }
-    
-    public IProjectFacet getProjectFacet()
-    {
-        return this.fv.getProjectFacet();
-    }
-
-    public IProjectFacetVersion getProjectFacetVersion()
-    {
-        return this.fv;
-    }
-
-    public Object getActionConfig()
-    {
-        return this.config;
-    }
-    
-    @Override
-    protected void toStringInternal( final StringBuilder buf )
-    {
-        buf.append( "  <facet id=\"" ); //$NON-NLS-1$
-        buf.append( this.fv.getProjectFacet().getId() );
-        buf.append( "\" version=\"" ); //$NON-NLS-1$
-        buf.append( this.fv.getVersionString() );
-        buf.append( "\"/>\n" ); //$NON-NLS-1$
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/ProjectFacetsChangedEvent.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/ProjectFacetsChangedEvent.java
deleted file mode 100644
index 0b7ac41..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/ProjectFacetsChangedEvent.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.events.internal;
-
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectWorkingCopy;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectEvent;
-import org.eclipse.wst.common.project.facet.core.events.IProjectFacetsChangedEvent;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class ProjectFacetsChangedEvent
-
-    extends FacetedProjectEvent
-    implements IProjectFacetsChangedEvent
-    
-{
-    private final Set<IProjectFacetVersion> addedFacets;
-    private final Set<IProjectFacetVersion> removedFacets;
-    private final Set<IProjectFacetVersion> changedVersions;
-    private final Set<IProjectFacetVersion> allAffectedFacets;
-    
-    public ProjectFacetsChangedEvent( final IFacetedProjectWorkingCopy fpjwc,
-                                      final Set<IProjectFacetVersion> addedFacets,
-                                      final Set<IProjectFacetVersion> removedFacets,
-                                      final Set<IProjectFacetVersion> changedVersions )
-    {
-        super( fpjwc, IFacetedProjectEvent.Type.PROJECT_FACETS_CHANGED );
-        
-        this.addedFacets = Collections.unmodifiableSet( addedFacets );
-        this.removedFacets = Collections.unmodifiableSet( removedFacets );
-        this.changedVersions = Collections.unmodifiableSet( changedVersions );
-        
-        final Set<IProjectFacetVersion> allAffectedFacets = new HashSet<IProjectFacetVersion>();
-        
-        allAffectedFacets.addAll( addedFacets );
-        allAffectedFacets.addAll( removedFacets );
-        allAffectedFacets.addAll( changedVersions );
-        
-        this.allAffectedFacets = Collections.unmodifiableSet( allAffectedFacets );
-    }
-
-    public Set<IProjectFacetVersion> getAddedFacets()
-    {
-        return this.addedFacets;
-    }
-
-    public Set<IProjectFacetVersion> getRemovedFacets()
-    {
-        return this.removedFacets;
-    }
-
-    public Set<IProjectFacetVersion> getFacetsWithChangedVersions()
-    {
-        return this.changedVersions;
-    }
-
-    public Set<IProjectFacetVersion> getAllAffectedFacets()
-    {
-        return this.allAffectedFacets;
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/ProjectListenerRegistry.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/ProjectListenerRegistry.java
deleted file mode 100644
index c6fa11d..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/ProjectListenerRegistry.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.events.internal;
-
-import java.util.EnumMap;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.CopyOnWriteArraySet;
-
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectEvent;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener;
-import org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class ProjectListenerRegistry
-{
-    private final Map<IFacetedProjectEvent.Type,Set<IFacetedProjectListener>> listeners;
-    
-    public ProjectListenerRegistry()
-    {
-        this.listeners
-            = new EnumMap<IFacetedProjectEvent.Type,Set<IFacetedProjectListener>>( IFacetedProjectEvent.Type.class );
-        
-        for( IFacetedProjectEvent.Type t : IFacetedProjectEvent.Type.values() )
-        {
-            this.listeners.put( t, new CopyOnWriteArraySet<IFacetedProjectListener>() );
-        }
-    }
-    
-    public void addListener( final IFacetedProjectListener listener,
-                             final IFacetedProjectEvent.Type... types )
-    {
-        if( listener == null || types == null )
-        {
-            throw new IllegalArgumentException();
-        }
-        
-        for( IFacetedProjectEvent.Type type 
-             : ( types.length > 0 ? types : IFacetedProjectEvent.Type.values() ) )
-        {
-            this.listeners.get( type ).add( listener );
-        }
-    }
-    
-    public void removeListener( final IFacetedProjectListener listener )
-    {
-        if( listener == null )
-        {
-            throw new IllegalArgumentException();
-        }
-        
-        for( Set<IFacetedProjectListener> listeners : this.listeners.values() )
-        {
-            listeners.remove( listener );
-        }
-    }
-    
-    public void notifyListeners( final IFacetedProjectEvent event )
-    {
-        for( IFacetedProjectListener listener : this.listeners.get( event.getType() ) )
-        {
-            try
-            {
-                listener.handleEvent( event );
-            }
-            catch( Exception e )
-            {
-                FacetCorePlugin.log( e );
-            }
-        }
-    }
-    
-    public Set<IFacetedProjectListener> getListeners( final IFacetedProjectEvent.Type eventType )
-    {
-        return this.listeners.get( eventType );
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/ProjectModifiedEvent.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/ProjectModifiedEvent.java
deleted file mode 100644
index 7256ba1..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/ProjectModifiedEvent.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.events.internal;
-
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class ProjectModifiedEvent
-
-    extends FacetedProjectEvent
-    
-{
-    public ProjectModifiedEvent( IFacetedProject project )
-    {
-        super( project, Type.PROJECT_MODIFIED );
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/TargetedRuntimesChangedEvent.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/TargetedRuntimesChangedEvent.java
deleted file mode 100644
index 3182787..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/TargetedRuntimesChangedEvent.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.events.internal;
-
-import java.util.Collection;
-import java.util.Comparator;
-import java.util.Set;
-import java.util.TreeSet;
-
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.events.ITargetedRuntimesChangedEvent;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class TargetedRuntimesChangedEvent
-
-    extends FacetedProjectEvent
-    implements ITargetedRuntimesChangedEvent
-    
-{
-    private final Set<IRuntime> oldTargetedRuntimes;
-    private final Set<IRuntime> newTargetedRuntimes;
-    
-    public TargetedRuntimesChangedEvent( final IFacetedProject project,
-                                         final Set<IRuntime> oldTargetedRuntimes,
-                                         final Set<IRuntime> newTargetedRuntimes )
-    {
-        super( project, Type.TARGETED_RUNTIMES_CHANGED );
-        
-        this.oldTargetedRuntimes = oldTargetedRuntimes;
-        this.newTargetedRuntimes = newTargetedRuntimes;
-    }
-
-    public Set<IRuntime> getOldTargetedRuntimes()
-    {
-        return this.oldTargetedRuntimes;
-    }
-
-    public Set<IRuntime> getNewTargetedRuntimes()
-    {
-        return this.newTargetedRuntimes;
-    }
-
-    @Override
-    protected void toStringInternal( final StringBuilder buf )
-    {
-        buf.append( "  <old-targeted-runtimes>\n" ); //$NON-NLS-1$
-        
-        for( IRuntime r : sort( this.oldTargetedRuntimes ) )
-        {
-            buf.append( "    <runtime name=\"" ); //$NON-NLS-1$
-            buf.append( r.getName() );
-            buf.append( "\"/>\n" ); //$NON-NLS-1$
-        }
-        
-        buf.append( "  </old-targeted-runtimes>\n" ); //$NON-NLS-1$
-
-        buf.append( "  <new-targeted-runtimes>\n" ); //$NON-NLS-1$
-        
-        for( IRuntime r : sort( this.newTargetedRuntimes ) )
-        {
-            buf.append( "    <runtime id=\"" ); //$NON-NLS-1$
-            buf.append( r.getName() );
-            buf.append( "\"/>\n" ); //$NON-NLS-1$
-        }
-        
-        buf.append( "  </new-targeted-runtimes>\n" ); //$NON-NLS-1$
-    }
-    
-    private static Collection<IRuntime> sort( final Collection<IRuntime> input )
-    {
-        final Set<IRuntime> result = new TreeSet<IRuntime>( new RuntimeComparator() );
-        result.addAll( input );
-        return result;
-    }
-    
-    private static final class RuntimeComparator 
-    
-        implements Comparator<IRuntime>
-    
-    {
-        public int compare( final IRuntime r1, 
-                            final IRuntime r2 )
-        {
-            return r1.getName().compareTo( r2.getName() );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ActionDefinition.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ActionDefinition.java
deleted file mode 100644
index 5992ac5..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ActionDefinition.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.instantiate;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.common.project.facet.core.IActionConfigFactory;
-import org.eclipse.wst.common.project.facet.core.IActionDefinition;
-import org.eclipse.wst.common.project.facet.core.IDelegate;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.IVersionExpr;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject.Action;
-
-/**
- * The implementation of the <code>IActionDefinition</code> interface.
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class ActionDefinition
-
-    implements IActionDefinition
-    
-{
-    private String id;
-    private String pluginId;
-    private IProjectFacet facet;
-    private IVersionExpr versionMatchExpr;
-    private Action.Type type;
-    private final Map<String,Object> properties;
-    private final Map<String,Object> propertiesReadOnly;
-    private String delegateClassName;
-    private IDelegate delegate;
-    private String configFactoryClassName;
-    
-    ActionDefinition()
-    {
-        this.properties = new HashMap<String,Object>();
-        this.propertiesReadOnly = Collections.unmodifiableMap( this.properties );
-    }
-    
-    public String getId()
-    {
-        return this.id;
-    }
-    
-    void setId( final String id )
-    {
-        this.id = id;
-    }
-    
-    void setPluginId( final String pluginId )
-    {
-        this.pluginId = pluginId;
-    }
-    
-    public IProjectFacet getProjectFacet()
-    {
-        return this.facet;
-    }
-    
-    void setProjectFacet( final IProjectFacet facet )
-    {
-        this.facet = facet;
-    }
-    
-    public IVersionExpr getVersionExpr()
-    {
-        return this.versionMatchExpr;
-    }
-    
-    void setVersionExpr( final IVersionExpr expr )
-    {
-        this.versionMatchExpr = expr;
-    }
-    
-    public Action.Type getActionType()
-    {
-        return this.type;
-    }
-    
-    void setActionType( final Action.Type type )
-    {
-        this.type = type;
-    }
-    
-    public Map<String,Object> getProperties()
-    {
-        return this.propertiesReadOnly;
-    }
-    
-    public Object getProperty( final String name )
-    {
-        return this.properties.get( name );
-    }
-
-    void setProperty( final String name,
-                      final Object value )
-    {
-        this.properties.put( name, value );
-    }
-    
-    public Object createConfigObject( final IProjectFacetVersion fv,
-                                      final String pjname )
-    
-        throws CoreException
-        
-    {
-        return createConfigObject();
-    }
-    
-    public Object createConfigObject()
-    
-        throws CoreException
-        
-    {
-        if( this.configFactoryClassName == null )
-        {
-            return null;
-        }
-        else
-        {
-            final Object factory 
-                = instantiate( this.pluginId, this.configFactoryClassName, 
-                               IActionConfigFactory.class );
-            
-            return ( (IActionConfigFactory) factory ).create();
-        }
-    }
-    
-    String getDelegateClassName()
-    {
-        return this.delegateClassName;
-    }
-    
-    void setDelegateClassName( final String delegateClassName )
-    {
-        this.delegateClassName = delegateClassName;
-    }
-    
-    IDelegate getDelegate()
-    
-        throws CoreException
-        
-    {
-        if( this.delegate == null )
-        {
-            final Object obj 
-                = instantiate( this.pluginId, this.delegateClassName, IDelegate.class );
-            
-            this.delegate = (IDelegate) obj;
-        }
-        
-        return this.delegate;
-    }
-    
-    String getConfigFactoryClassName()
-    {
-        return this.configFactoryClassName;
-    }
-    
-    void setConfigFactoryClassName( final String configFactoryClassName )
-    {
-        this.configFactoryClassName = configFactoryClassName;
-    }
-    
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Category.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Category.java
deleted file mode 100644
index 130a4ae..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Category.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.common.project.facet.core.ICategory;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class Category 
-
-    implements ICategory 
-    
-{
-    private String id;
-    private String plugin;
-    private String label;
-    private String description;
-    private Set<IProjectFacet> facets;
-    private Set<IProjectFacet> facetsReadOnly;
-    
-    Category() 
-    {
-        this.facets = new HashSet<IProjectFacet>();
-        this.facetsReadOnly = Collections.unmodifiableSet( this.facets );
-    }
-    
-    public String getId() 
-    {
-        return this.id;
-    }
-    
-    void setId( final String id )
-    {
-        this.id = id;
-    }
-    
-    public String getPluginId()
-    {
-        return this.plugin;
-    }
-    
-    void setPluginId( final String plugin )
-    {
-        this.plugin = plugin;
-    }
-    
-    public String getLabel() 
-    {
-        return this.label;
-    }
-    
-    void setLabel( final String label )
-    {
-        this.label = label;
-    }
-
-    public String getDescription() 
-    {
-        return this.description;
-    }
-    
-    void setDescription( final String description )
-    {
-        this.description = description;
-    }
-    
-    public Set<IProjectFacet> getProjectFacets()
-    {
-        return this.facetsReadOnly;
-    }
-    
-    void addProjectFacet( final IProjectFacet f )
-    {
-        this.facets.add( f );
-    }
-    
-    void removeProjectFacet( final IProjectFacet f )
-    {
-        this.facets.remove( f );
-    }
-    
-    public Object getAdapter( final Class type )
-    {
-        return Platform.getAdapterManager().loadAdapter( this, type.getName() );
-    }
-    
-    public String toString()
-    {
-        return this.label;
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Constraint.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Constraint.java
deleted file mode 100644
index 89da678..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Constraint.java
+++ /dev/null
@@ -1,491 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.IConstraint;
-import org.eclipse.wst.common.project.facet.core.IGroup;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.IVersionExpr;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class Constraint
-
-    implements IConstraint
-    
-{
-    private final IProjectFacetVersion fv;
-    private final Type type;
-    private final List<Object> operands;
-    
-    Constraint( final IProjectFacetVersion fv,
-                final Type type,
-                final Object[] operands )
-    {
-        this.fv = fv;
-        this.type = type;
-        
-        final List<Object> temp = new ArrayList<Object>();
-        
-        for( int i = 0; i < operands.length; i++ )
-        {
-            temp.add( operands[ i ] );
-        }
-        
-        this.operands = Collections.unmodifiableList( temp );
-    }
-    
-    public Type getType()
-    {
-        return this.type;
-    }
-    
-    public List<Object> getOperands()
-    {
-        return this.operands;
-    }
-    
-    public Object getOperand( final int index )
-    {
-        return this.operands.get( index );
-    }
-    
-    public IStatus check( final Collection<IProjectFacetVersion> facets )
-    {
-        return check( facets, false );
-    }
-    
-    public IStatus check( final Collection<IProjectFacetVersion> facets,
-                          final boolean validateSoftDeps )
-    {
-        final MultiStatus result = createMultiStatus(); 
-        
-        if( this.type == Type.AND )
-        {
-            for( Object operand : this.operands )
-            {
-                final IConstraint childConstraint = (IConstraint) operand;
-                final IStatus st = childConstraint.check( facets, validateSoftDeps );
-                
-                if( st.getSeverity() != IStatus.OK )
-                {
-                    result.addAll( st );
-                }
-            }
-        }
-        else if( this.type == Type.OR )
-        {
-            boolean someBranchWorks = false;
-            
-            for( Object operand : this.operands )
-            {
-                final IConstraint childConstraint = (IConstraint) operand;
-                
-                if( childConstraint.check( facets, validateSoftDeps ).isOK() )
-                {
-                    someBranchWorks = true;
-                    break;
-                }
-            }
-            
-            if( ! someBranchWorks )
-            {
-                ValidationProblem p = null;
-                
-                if( this.operands.size() == 2 && containsOnlyRequires() )
-                {
-                    final ProjectFacetRef[] frefs = new ProjectFacetRef[ 2 ];
-                    
-                    for( int i = 0; i < 2; i++ )
-                    {
-                        final IConstraint c = (IConstraint) this.operands.get( i );
-                        final IProjectFacet rf = (IProjectFacet) c.getOperand( 0 );
-                        final IVersionExpr vexpr = (IVersionExpr) c.getOperand( 1 );
-                        
-                        frefs[ i ] = new ProjectFacetRef( rf, vexpr );
-                    }
-                    
-                    p = new ValidationProblem( ValidationProblem.Type.REQUIRES_ONE_OF_TWO,
-                                               this.fv, frefs[ 0 ], 
-                                               frefs[ 1 ] );
-                }
-                
-                if( p == null )
-                {
-                    p = new ValidationProblem( ValidationProblem.Type.COMPLEX,
-                                               this.fv );
-                }
-                
-                result.add( p );
-            }
-        }
-        else if( this.type == Type.REQUIRES )
-        {
-            final Boolean soft
-                = ( (Boolean) this.operands.get( this.operands.size() - 1 ) );
-        
-            if( ! soft.equals( Boolean.TRUE ) || validateSoftDeps )
-            {
-                final Object firstOperand = this.operands.get( 0 );
-                
-                if( firstOperand instanceof IGroup )
-                {
-                    final IGroup group = (IGroup) firstOperand;
-                    
-                    if( ! containsAny( facets, group.getMembers() ) )
-                    {
-                        final ValidationProblem.Type ptype
-                            = ValidationProblem.Type.REQUIRES_GROUP;
-                        
-                        final ValidationProblem problem
-                            = new ValidationProblem( ptype, this.fv, group );
-                        
-                        result.add( problem );
-                    }
-                }
-                else
-                {
-                    final IProjectFacet rf = (IProjectFacet) firstOperand;
-                    final IVersionExpr vexpr = (IVersionExpr) this.operands.get( 1 );
-                    
-                    boolean found = false;
-                    
-                    for( IProjectFacetVersion fv : facets )
-                    {
-                        if( fv.getProjectFacet() == rf )
-                        {
-                            if( vexpr.check( fv ) )
-                            {
-                                found = true;
-                            }
-                            
-                            break;
-                        }
-                    }
-                    
-                    if( ! found )
-                    {
-                        final ValidationProblem.Type ptype = ValidationProblem.Type.REQUIRES;
-                        final ProjectFacetRef fref = new ProjectFacetRef( rf, vexpr );
-                        
-                        final ValidationProblem problem 
-                            = new ValidationProblem( ptype, this.fv, fref ); 
-                        
-                        result.add( problem );
-                    }
-                }
-            }
-        }
-        else if( this.type == Type.CONFLICTS )
-        {
-            final Object firstOperand = this.operands.get( 0 );
-            
-            if( firstOperand instanceof IGroup )
-            {
-                final IGroup group = (IGroup) firstOperand;
-            
-                for( IProjectFacetVersion member : group.getMembers() )
-                {
-                    if( member.getProjectFacet() != this.fv.getProjectFacet() && 
-                        facets.contains( member ) )
-                    {
-                        final ValidationProblem.Type t 
-                            = ValidationProblem.Type.CONFLICTS;
-                                
-                        final ValidationProblem problem
-                            = new ValidationProblem( t, this.fv, member );
-                        
-                        result.add( problem );
-                    }
-                }
-            }
-            else
-            {
-                final IProjectFacet f = (IProjectFacet) firstOperand;
-                
-                final IVersionExpr vexpr
-                    = this.operands.size() == 2 ? (IVersionExpr) this.operands.get( 1 ) : null;
-                
-                for( IProjectFacetVersion fver : facets )
-                {
-                    if( fver.getProjectFacet() == f )
-                    {
-                        if( vexpr == null || vexpr.check( fver ) )
-                        {
-                            final ValidationProblem.Type t 
-                                = ValidationProblem.Type.CONFLICTS;
-                                    
-                            final ValidationProblem problem
-                                = new ValidationProblem( t, this.fv, fver );
-                            
-                            result.add( problem );
-                            
-                            break;
-                        }
-                    }
-                }
-            }
-        }
-        else
-        {
-            throw new IllegalStateException();
-        }
-        
-        return result;
-    }
-    
-    /**
-     * Prunes the constraint by removing parts that are not relevant or satisfied by default
-     * in the context of the provided fixed facets.
-     * 
-     * <ol>
-     *   <li>An AND or an OR operator with no children is eliminated.</li>
-     *   <li>An AND or an OR operator with one child is replaced by that child.</li>
-     *   <li>A REQUIRES_FACET operator is eliminated if all applicable versions of
-     *     that facet are incompatible with the fixed facets.</li>
-     *   <li>A REQUIRED_FACET operator is eliminated if it will accept every version
-     *     of a fixed facet.</li>
-     *   <li>A CONFLICTS_WITH_FACET operator is eliminated if none of the matched versions
-     *     of that facet are compatible with the fixed facets.</li>
-     *   <li>A CONFLICTS_WITH_GROUP operator is eliminated if all members of the group
-     *     (not counting this facet) are incompatible with the fixed facets.</li>
-     * </ol>
-     */
-    
-    public static IConstraint pruneConstraint( final IProjectFacetVersion facet,
-                                               final Set<IProjectFacet> fixedFacets )
-    {
-        return pruneConstraint( facet, facet.getConstraint(), fixedFacets );
-    }
-
-    private static IConstraint pruneConstraint( final IProjectFacetVersion facet,
-                                                final IConstraint constraint,
-                                                final Set<IProjectFacet> fixedFacets )
-    {
-        final IConstraint.Type type = constraint.getType();
-        
-        if( type == IConstraint.Type.AND || type == IConstraint.Type.OR )
-        {
-            final List<IConstraint> newOperands = new ArrayList<IConstraint>();
-            boolean changed = false;
-            
-            for( Object operand : constraint.getOperands() )
-            {
-                final IConstraint newOperand 
-                    = pruneConstraint( facet, (IConstraint) operand, fixedFacets );
-                
-                if( newOperand == null )
-                {
-                    changed = true;
-                }
-                else if( operand != newOperand )
-                {
-                    changed = true;
-                    newOperands.add( newOperand );
-                }
-                else
-                {
-                    newOperands.add( (IConstraint) operand );
-                }
-            }
-            
-            final int newOperandCount = newOperands.size();
-            
-            if( newOperandCount == 0 )
-            {
-                return null;
-            }
-            else if( newOperandCount == 1 )
-            {
-                return newOperands.get( 0 );
-            }
-            else if( changed )
-            {
-                return new Constraint( ( (Constraint) constraint ).fv, type,
-                                       newOperands.toArray() );
-            }
-        }
-        else if( type == IConstraint.Type.REQUIRES )
-        {
-            final Object firstOperand = constraint.getOperand( 0 );
-            
-            if( firstOperand instanceof IProjectFacet )
-            {
-                final IProjectFacet f = (IProjectFacet) firstOperand;
-                final IVersionExpr vexpr = (IVersionExpr) constraint.getOperand( 1 );
-                
-                int acceptableVersionCount = 0;
-                
-                for( IProjectFacetVersion fv : f.getVersions() )
-                {
-                    if( vexpr.check( fv ) && fv.isValidFor( fixedFacets ) )
-                    {
-                        acceptableVersionCount++;
-                    }
-                }
-                
-                if( acceptableVersionCount == 0 )
-                {
-                    return null;
-                }
-                
-                if( fixedFacets.contains( f ) && 
-                    f.getVersions().size() == acceptableVersionCount )
-                {
-                    return null;
-                }
-            }
-        }
-        else if( type == IConstraint.Type.CONFLICTS )
-        {
-            final Object firstOperand = constraint.getOperand( 0 );
-            
-            if( firstOperand instanceof IProjectFacet )
-            {
-                final IProjectFacet f = (IProjectFacet) firstOperand;
-                final IVersionExpr vexpr = (IVersionExpr) constraint.getOperand( 1 );
-                
-                boolean isValidForContext = false;
-                
-                for( IProjectFacetVersion fv : f.getVersions() )
-                {
-                    if( vexpr.check( fv ) && fv.isValidFor( fixedFacets ) )
-                    {
-                        isValidForContext = true;
-                        break;
-                    }
-                }
-                
-                if( ! isValidForContext )
-                {
-                    return null;
-                }
-            }
-            else if( firstOperand instanceof IGroup )
-            {
-                final IGroup group = (IGroup) firstOperand;
-                
-                boolean atLeastOneIsValid = false;
-                
-                for( IProjectFacetVersion member : group.getMembers() )
-                {
-                    if( member.getProjectFacet() != facet.getProjectFacet() && 
-                        member.isValidFor( fixedFacets ) )
-                    {
-                        atLeastOneIsValid = true;
-                        break;
-                    }
-                }
-                
-                if( ! atLeastOneIsValid )
-                {
-                    return null;
-                }
-            }
-        }
-        
-        return constraint;
-    }
-    
-    private boolean containsOnlyRequires()
-    {
-        for( Object operand : this.operands )
-        {
-            if( ( (IConstraint) operand ).getType() != Type.REQUIRES )
-            {
-                return false;
-            }
-        }
-        
-        return true;
-    }
-    
-    private static boolean containsAny( final Collection<? extends Object> a,
-                                        final Collection<? extends Object> b )
-    {
-        for( Object x : a )
-        {
-            if( b.contains( x ) )
-            {
-                return true;
-            }
-        }
-        
-        return false;
-    }
-    
-    static MultiStatus createMultiStatus()
-    {
-        return createMultiStatus( new IStatus[ 0 ] );
-    }
-
-    public static MultiStatus createMultiStatus( final IStatus[] children )
-    {
-        return new MultiStatus( FacetCorePlugin.PLUGIN_ID, 0, children, 
-                                Resources.validationProblems, null );
-    }
-    
-    public String toString()
-    {
-        final StringBuilder buf = new StringBuilder();
-        
-        buf.append( this.type.name() );
-        buf.append( "( " ); //$NON-NLS-1$
-        
-        boolean isFirst = true;
-        
-        for( Object operand : this.operands )
-        {
-            if( isFirst )
-            {
-                isFirst = false;
-            }
-            else
-            {
-                buf.append( ", " ); //$NON-NLS-1$
-            }
-            
-            buf.append( operand.toString() );
-        }
-        
-        buf.append( " )" ); //$NON-NLS-1$
-        
-        return buf.toString();
-    }
-
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String validationProblems;
-        
-        static
-        {
-            initializeMessages( Constraint.class.getName(), 
-                                Resources.class );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Constraint.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Constraint.properties
deleted file mode 100644
index 9b2f33c..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Constraint.properties
+++ /dev/null
@@ -1 +0,0 @@
-validationProblems = One or more constraints have not been satisfied.
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/DefaultFacetsExtensionPoint.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/DefaultFacetsExtensionPoint.java
deleted file mode 100644
index d854d92..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/DefaultFacetsExtensionPoint.java
+++ /dev/null
@@ -1,334 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import static org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin.PLUGIN_ID;
-import static org.eclipse.wst.common.project.facet.core.internal.ProblemLog.reportMissingFacet;
-import static org.eclipse.wst.common.project.facet.core.internal.ProblemLog.reportMissingFacetVersion;
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.findExtensions;
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.findRequiredAttribute;
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.getTopLevelElements;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectBase;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponent;
-import org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.InvalidExtensionException;
-
-/**
- * Contains the logic for processing the <code>defaultFacets</code> extension point. 
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class DefaultFacetsExtensionPoint
-{
-    public static final String EXTENSION_POINT_ID = "defaultFacets"; //$NON-NLS-1$
-    
-    private static final String ATTR_ID = "id"; //$NON-NLS-1$
-    private static final String ATTR_VERSION = "version"; //$NON-NLS-1$
-    private static final String EL_CONTEXT = "context"; //$NON-NLS-1$
-    private static final String EL_DEFAULT_FACETS = "default-facets"; //$NON-NLS-1$
-    private static final String EL_FACET = "facet"; //$NON-NLS-1$
-    private static final String EL_FIXED_FACET = "fixed-facet"; //$NON-NLS-1$
-    private static final String EL_RUNTIME_COMPONENT = "runtime-component"; //$NON-NLS-1$
-
-    private static List<DefaultFacetsExtension> extensions = null;
-    
-    public static Set<IProjectFacetVersion> getDefaultFacets( final IFacetedProjectBase fproj )
-    
-        throws CoreException
-        
-    {
-        // Make sure that none of the fixed facets are unknown.
-        
-        final Set<IProjectFacet> fixed = fproj.getFixedProjectFacets();
-        
-        for( IProjectFacet f : fixed )
-        {
-            if( f.getPluginId() == null )
-            {
-                return null;
-            }
-        }
-        
-        // Get the complete list of default facets from declared extensions.
-        
-        readExtensions();
-
-        final Map<IProjectFacet,IProjectFacetVersion> facets 
-            = new HashMap<IProjectFacet,IProjectFacetVersion>();
-        
-        for( DefaultFacetsExtension extension : extensions )
-        {
-            if( extension.match( fproj ) )
-            {
-                for( IProjectFacetVersion fv : extension.getProjectFacets() )
-                {
-                    facets.put( fv.getProjectFacet(), fv );
-                }
-            }
-        }
-        
-        // Remove the facets that conflict with fixed facets.
-        
-        final Set<IProjectFacet> toRemove = new HashSet<IProjectFacet>();
-        
-        for( IProjectFacetVersion fv : facets.values() )
-        {
-            if( ! fv.isValidFor( fixed ) )
-            {
-                toRemove.add( fv.getProjectFacet() );
-            }
-        }
-        
-        for( IProjectFacet f : toRemove )
-        {
-            facets.remove( f );
-        }
-        
-        // Make sure that the result includes all of the fixed facets.
-        
-        final IRuntime runtime = fproj.getPrimaryRuntime();
-        Map<IProjectFacet,IProjectFacetVersion> toadd = null;
-        
-        for( IProjectFacet f : fixed )
-        {
-            if( ! facets.containsKey( f ) )
-            {
-                if( toadd == null )
-                {
-                    toadd = new HashMap<IProjectFacet,IProjectFacetVersion>();
-                }
-                
-                final IProjectFacetVersion fv;
-                
-                if( runtime != null )
-                {
-                    fv = f.getLatestSupportedVersion( runtime );
-                }
-                else
-                {
-                    fv = f.getDefaultVersion();
-                }
-                
-                toadd.put( f, fv );
-            }
-        }
-        
-        if( toadd != null )
-        {
-            facets.putAll( toadd );
-        }
-        
-        // Return the result.
-        
-        return Collections.unmodifiableSet( new HashSet<IProjectFacetVersion>( facets.values() ) );
-    }
-    
-    private static synchronized void readExtensions()
-    {
-        if( extensions != null )
-        {
-            return;
-        }
-        
-        extensions = new ArrayList<DefaultFacetsExtension>();        
-        
-        for( IConfigurationElement element 
-             : getTopLevelElements( findExtensions( PLUGIN_ID, EXTENSION_POINT_ID ) ) )
-        {
-            if( element.getName().equals( EL_DEFAULT_FACETS ) )
-            {
-                try
-                {
-                    readExtension( element );
-                }
-                catch( InvalidExtensionException e )
-                {
-                    // Continue. The problem has been reported to the user via the log.
-                }
-            }
-        }
-    }
-
-    private static void readExtension( final IConfigurationElement config )
-    
-        throws InvalidExtensionException
-        
-    {
-        final String pluginId = config.getContributor().getName();
-        final ProblemLog.Policy problemLoggingPolicy = ProblemLog.Policy.createBasedOnIgnoreProblemsAttr( config );
-        final DefaultFacetsExtension extension = new DefaultFacetsExtension();
-        
-        for( IConfigurationElement child : config.getChildren() )
-        {
-            final String childName = child.getName();
-            
-            if( childName.equals( EL_RUNTIME_COMPONENT ) )
-            {
-                final RuntimeComponentTypeRef rctRef = RuntimeComponentTypeRef.read( child, problemLoggingPolicy );
-                
-                if( rctRef == null )
-                {
-                    throw new InvalidExtensionException();
-                }
-                
-                extension.addContext( rctRef );
-            }
-            else if( childName.equals( EL_CONTEXT ) )
-            {
-                for( IConfigurationElement contextChild : child.getChildren() )
-                {
-                    final String contextChildName = contextChild.getName();
-                    
-                    if( contextChildName.equals( EL_RUNTIME_COMPONENT ) )
-                    {
-                        final RuntimeComponentTypeRef rctRef = RuntimeComponentTypeRef.read( contextChild, problemLoggingPolicy );
-                        
-                        if( rctRef == null )
-                        {
-                            throw new InvalidExtensionException();
-                        }
-                        
-                        extension.addContext( rctRef );
-                    }
-                    else if( contextChildName.equals( EL_FIXED_FACET ) )
-                    {
-                        final String fid = findRequiredAttribute( contextChild, ATTR_ID );
-                        
-                        if( ! ProjectFacetsManager.isProjectFacetDefined( fid ) )
-                        {
-                            reportMissingFacet( fid, pluginId, problemLoggingPolicy );
-                            throw new InvalidExtensionException();
-                        }
-                        
-                        final IProjectFacet f = ProjectFacetsManager.getProjectFacet( fid );
-                        
-                        extension.addContext( f );
-                    }
-                }
-            }
-            else if( childName.equals( EL_FACET ) )
-            {
-                final String fid = findRequiredAttribute( child, ATTR_ID );
-                
-                if( ! ProjectFacetsManager.isProjectFacetDefined( fid ) )
-                {
-                    reportMissingFacet( fid, pluginId, problemLoggingPolicy );
-                    throw new InvalidExtensionException();
-                }
-
-                final IProjectFacet f = ProjectFacetsManager.getProjectFacet( fid );
-                
-                final String ver = findRequiredAttribute( child, ATTR_VERSION );
-                
-                if( ! f.hasVersion( ver ) )
-                {
-                    reportMissingFacetVersion( f, ver, pluginId, problemLoggingPolicy );
-                    throw new InvalidExtensionException();
-                }
-                
-                extension.addProjectFacet( f.getVersion( ver ) );
-            }
-        }
-        
-        extensions.add( extension );
-    }
-
-    private static final class DefaultFacetsExtension
-    {
-        private Set<IProjectFacet> contextFixedFacets = new HashSet<IProjectFacet>();
-        
-        private Set<RuntimeComponentTypeRef> contextRuntimeComponentTypes 
-            = new HashSet<RuntimeComponentTypeRef>();
-        
-        private final Set<IProjectFacetVersion> facets = new HashSet<IProjectFacetVersion>();
-        
-        public void addContext( final IProjectFacet facet )
-        {
-            this.contextFixedFacets.add( facet );
-        }
-        
-        public void addContext( final RuntimeComponentTypeRef runtimeComponentTypeRef )
-        {
-            this.contextRuntimeComponentTypes.add( runtimeComponentTypeRef );
-        }
-        
-        public Set<IProjectFacetVersion> getProjectFacets()
-        {
-            return this.facets;
-        }
-        
-        public void addProjectFacet( final IProjectFacetVersion fv )
-        {
-            this.facets.add( fv );
-        }
-        
-        public boolean match( final IFacetedProjectBase fproj )
-        {
-            if( ! this.contextFixedFacets.isEmpty() )
-            {
-                final Set<IProjectFacet> fixedFacets = fproj.getFixedProjectFacets();
-                
-                if( ! fixedFacets.containsAll( this.contextFixedFacets ) )
-                {
-                    return false;
-                }
-            }
-            
-            if( ! this.contextRuntimeComponentTypes.isEmpty() )
-            {
-                final IRuntime runtime = fproj.getPrimaryRuntime();
-                
-                if( runtime == null )
-                {
-                    return false;
-                }
-                
-                for( RuntimeComponentTypeRef rctRef : this.contextRuntimeComponentTypes )
-                {
-                    boolean found = false;
-                    
-                    for( IRuntimeComponent rc : runtime.getRuntimeComponents() )
-                    {
-                        if( rctRef.check( Collections.singleton( rc.getRuntimeComponentVersion() ) ) )
-                        {
-                            found = true;
-                            break;
-                        }
-                    }
-                    
-                    if( ! found )
-                    {
-                        return false;
-                    }
-                }
-            }
-            
-            return true;
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetCorePlugin.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetCorePlugin.java
deleted file mode 100644
index 5f4927a..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetCorePlugin.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.runtime.ILog;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.wst.common.project.facet.core.FacetedProjectFramework;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class FacetCorePlugin 
-{
-    public static final String PLUGIN_ID = FacetedProjectFramework.PLUGIN_ID;
-    
-    private static final String TRACING_ACTION_SORTING
-        = PLUGIN_ID + "/actionSorting"; //$NON-NLS-1$
-
-    private static final String TRACING_FRAMEWORK_ACTIVATION   
-        = PLUGIN_ID + "/activation"; //$NON-NLS-1$
-    
-    private static final Set<String> messagesLogged = new HashSet<String>();
-    
-    private static final ILog platformLog
-        = Platform.getLog( Platform.getBundle( PLUGIN_ID ) );
-    
-    public static boolean isTracingActionSorting()
-    {
-        return checkDebugOption( TRACING_ACTION_SORTING );
-    }
-    
-    public static boolean isTracingFrameworkActivation()
-    {
-        return checkDebugOption( TRACING_FRAMEWORK_ACTIVATION );
-    }
-    
-    public static boolean checkDebugOption( final String debugOption )
-    {
-        final String optionValue = Platform.getDebugOption( debugOption );
-        
-        return optionValue == null 
-               ? false : Boolean.valueOf( optionValue ).equals( Boolean.TRUE );
-    }
-    
-    public static void log( final Exception e )
-    {
-        final String msg = e.getMessage() + ""; //$NON-NLS-1$
-        log( new Status( IStatus.ERROR, PLUGIN_ID, IStatus.OK, msg, e ) );
-    }
-
-    public static void log( final IStatus status )
-    {
-        platformLog.log( status );
-    }
-    
-    public static void log( final String msg )
-    {
-        log( new Status( IStatus.ERROR, PLUGIN_ID, IStatus.OK, msg, null ) );
-    }
-    
-    public static void logError( final String msg )
-    {
-        logError( msg, false );
-    }
-    
-    public static void logError( final String msg,
-                                 final boolean suppressDuplicates )
-    {
-        if( suppressDuplicates && messagesLogged.contains( msg ) )
-        {
-            return;
-        }
-        
-        messagesLogged.add( msg );
-        
-        log( new Status( IStatus.ERROR, PLUGIN_ID, IStatus.OK, msg, null ) );
-    }
-
-    public static void logWarning( final String msg )
-    {
-        logWarning( msg, false );
-    }
-    
-    public static void logWarning( final String msg,
-                                   final boolean suppressDuplicates )
-    {
-        if( suppressDuplicates && messagesLogged.contains( msg ) )
-        {
-            return;
-        }
-        
-        messagesLogged.add( msg );
-        
-        log( new Status( IStatus.WARNING, PLUGIN_ID, IStatus.OK, msg, null ) );
-    }
-    
-    public static IStatus createErrorStatus( final String msg )
-    {
-        return createErrorStatus( msg, null );
-    }
-
-    public static IStatus createErrorStatus( final String msg,
-                                             final Exception e )
-    {
-        return new Status( IStatus.ERROR, FacetCorePlugin.PLUGIN_ID, 0, msg, e );
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProject.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProject.java
deleted file mode 100644
index 1179186..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProject.java
+++ /dev/null
@@ -1,1985 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import static org.eclipse.wst.common.project.facet.core.util.internal.FileUtil.validateEdit;
-import static org.eclipse.wst.common.project.facet.core.util.internal.ProgressMonitorUtil.beginTask;
-import static org.eclipse.wst.common.project.facet.core.util.internal.ProgressMonitorUtil.done;
-import static org.eclipse.wst.common.project.facet.core.util.internal.ProgressMonitorUtil.submon;
-import static org.eclipse.wst.common.project.facet.core.util.internal.ProgressMonitorUtil.worked;
-import static org.eclipse.wst.common.project.facet.core.util.internal.XmlUtil.escape;
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.PrintWriter;
-import java.io.StringReader;
-import java.io.StringWriter;
-import java.io.UnsupportedEncodingException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.CopyOnWriteArraySet;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-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.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.SubMonitor;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.ActionConfig;
-import org.eclipse.wst.common.project.facet.core.FacetedProjectFrameworkException;
-import org.eclipse.wst.common.project.facet.core.IActionDefinition;
-import org.eclipse.wst.common.project.facet.core.IDelegate;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectValidator;
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectWorkingCopy;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectEvent;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener;
-import org.eclipse.wst.common.project.facet.core.events.ITargetedRuntimesChangedEvent;
-import org.eclipse.wst.common.project.facet.core.events.internal.FixedFacetsChangedEvent;
-import org.eclipse.wst.common.project.facet.core.events.internal.LegacyListenerAdapter;
-import org.eclipse.wst.common.project.facet.core.events.internal.PrimaryRuntimeChangedEvent;
-import org.eclipse.wst.common.project.facet.core.events.internal.ProjectFacetActionEvent;
-import org.eclipse.wst.common.project.facet.core.events.internal.ProjectListenerRegistry;
-import org.eclipse.wst.common.project.facet.core.events.internal.ProjectModifiedEvent;
-import org.eclipse.wst.common.project.facet.core.events.internal.TargetedRuntimesChangedEvent;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-import org.eclipse.wst.common.project.facet.core.runtime.RuntimeManager;
-import org.eclipse.wst.common.project.facet.core.runtime.internal.UnknownRuntime;
-import org.eclipse.wst.common.project.facet.core.util.internal.ObjectReference;
-import org.osgi.service.prefs.BackingStoreException;
-import org.osgi.service.prefs.Preferences;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.xml.sax.EntityResolver;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-/* 
- * Synchronization Notes
- * 
- * 1. There is an internal lock object that's used to synchronize access to
- *    the data structure. By synchronizing on an internal object, outside code
- *    cannot cause a deadlock by synchronizing on the FacetedProject object.
- *    
- * 2. Readers synchronize on the lock object for the duration of the method
- *    call. This protects the readers from writers and makes sure that reader
- *    is not reading stale data from thread's local memory.
- *    
- * 3. All collections that are returned by the reader methods are guaranteed
- *    to not change after the fact. This is implemented through a copy-on-write 
- *    policy.
- * 
- * 4. Writers synchronize on the lock object briefly at the start of the method 
- *    and mark the FacetedProject as being modified. If the project is already
- *    being modified, the new writer will wait. Inside the bodies of the
- *    modifier methods, the writer thread is only synchronized on the lock
- *    object while modifying the internal datastructures. These synchronization
- *    sections are kept short and they never span over code that might modify
- *    file system resources. This is done to prevent deadlocks. Once the write
- *    is complete, the writer thread synchronizes on the lock object, resets the 
- *    "being modified" flag, and notifies any writers that may be waiting. 
- */
-
-public final class FacetedProject
-
-    implements IFacetedProject
-    
-{
-    public static final String METADATA_FILE
-        = ".settings/" + FacetCorePlugin.PLUGIN_ID + ".xml"; //$NON-NLS-1$ //$NON-NLS-2$
-
-    private static final String TRACING_DELEGATE_CALLS
-        = FacetCorePlugin.PLUGIN_ID + "/delegate/calls"; //$NON-NLS-1$
-    
-    private static final String TRACING_EVENTS
-        = FacetCorePlugin.PLUGIN_ID + "/events/project"; //$NON-NLS-1$
-    
-    private static final String TRACING_EVENTS_STACKTRACE
-        = FacetCorePlugin.PLUGIN_ID + "/events/project/stacktrace"; //$NON-NLS-1$
-
-    private static final String EL_RUNTIME = "runtime"; //$NON-NLS-1$
-    private static final String EL_SECONDARY_RUNTIME = "secondary-runtime"; //$NON-NLS-1$
-    private static final String EL_FIXED = "fixed"; //$NON-NLS-1$
-    private static final String EL_INSTALLED = "installed"; //$NON-NLS-1$
-    private static final String ATTR_NAME = "name"; //$NON-NLS-1$
-    private static final String ATTR_FACET = "facet"; //$NON-NLS-1$
-    private static final String ATTR_VERSION = "version"; //$NON-NLS-1$
-
-    private final IProject project;
-    private final Set<IProjectFacetVersion> facets;
-    private final Set<IProjectFacetVersion> facetsReadOnly;
-    private final Set<IProjectFacet> fixed;
-    private final Set<IProjectFacet> fixedReadOnly;
-    private final Map<String,ProjectFacet> unknownFacets;
-    private final Set<String> targetedRuntimes;
-    private String primaryRuntime;
-    IFile f;
-    private long fModificationStamp = -1;
-    private final ProjectListenerRegistry listeners;
-    private final Object lock = new Object();
-    private boolean isBeingModified = false;
-    private Thread modifierThread = null;
-    private Exception parsingException;
-    private boolean isDeleted;
-    
-    FacetedProject( final IProject project )
-    
-        throws CoreException
-        
-    {
-        this.project = project;
-        this.facets = new CopyOnWriteArraySet<IProjectFacetVersion>();
-        this.facetsReadOnly = Collections.unmodifiableSet( this.facets );
-        this.fixed = new CopyOnWriteArraySet<IProjectFacet>();
-        this.fixedReadOnly = Collections.unmodifiableSet( this.fixed );
-        this.unknownFacets = new HashMap<String,ProjectFacet>();
-        this.targetedRuntimes = new CopyOnWriteArraySet<String>();
-        this.listeners = new ProjectListenerRegistry();
-        this.parsingException = null;
-        this.isDeleted = false;
-        
-        this.f = project.getFile( METADATA_FILE );
-        
-        refresh( true );
-    }
-    
-    public IProject getProject()
-    {
-        return this.project;
-    }
-    
-    public Set<IProjectFacetVersion> getProjectFacets()
-    {
-        synchronized( this.lock )
-        {
-            return this.facetsReadOnly;
-        }
-    }
-    
-    public boolean hasProjectFacet( final IProjectFacet f )
-    {
-        synchronized( this.lock )
-        {
-            for( IProjectFacetVersion fv : this.facets )
-            {
-                if( fv.getProjectFacet() == f )
-                {
-                    return true;
-                }
-            }
-            
-            return false;
-        }
-    }
-    
-    public boolean hasProjectFacet( final IProjectFacetVersion fv )
-    {
-        synchronized( this.lock )
-        {
-            return this.facets.contains( fv );
-        }
-    }
-    
-    public IProjectFacetVersion getProjectFacetVersion( final IProjectFacet f )
-    {
-        synchronized( this.lock )
-        {
-            for( IProjectFacetVersion fv : this.facets )
-            {
-                if( fv.getProjectFacet() == f )
-                {
-                    return fv;
-                }
-            }
-            
-            return null;
-        }
-    }
-
-    public IProjectFacetVersion getInstalledVersion( final IProjectFacet f )
-    {
-        return getProjectFacetVersion( f );
-    }
-
-    public void installProjectFacet( final IProjectFacetVersion fv,
-                                     final Object config,
-                                     final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        final Action action 
-            = new Action( Action.Type.INSTALL, fv, config );
-            
-        modify( Collections.singleton( action ), monitor );
-    }
-
-    public void uninstallProjectFacet( final IProjectFacetVersion fv,
-                                       final Object config,
-                                       final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        final Action action 
-            = new Action( Action.Type.UNINSTALL, fv, config );
-            
-        modify( Collections.singleton( action ), monitor );
-    }
-    
-    public void modify( final Set<Action> actions,
-                        final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        final ObjectReference<Boolean> result = new ObjectReference<Boolean>( true );
-        
-        final IWorkspaceRunnable wr = new IWorkspaceRunnable()
-        {
-            public void run( final IProgressMonitor monitor ) 
-            
-                throws CoreException
-                
-            {
-                beginModification();
-                
-                try
-                {
-                    final IFacetedProjectWorkingCopy fpjwc = createWorkingCopy();
-
-                    try
-                    {
-                        for( Action action : actions )
-                        {
-                            final Action.Type type = action.getType();
-                            final IProjectFacetVersion fv = action.getProjectFacetVersion();
-                            
-                            if( type == Action.Type.INSTALL )
-                            {
-                                fpjwc.addProjectFacet( fv );
-                            }
-                            else if( type == Action.Type.VERSION_CHANGE )
-                            {
-                                fpjwc.changeProjectFacetVersion( fv );
-                            }
-                            else if( type == Action.Type.UNINSTALL )
-                            {
-                                fpjwc.removeProjectFacet( fv );
-                            }
-                            else
-                            {
-                                throw new IllegalStateException();
-                            }
-                            
-                            final Object config = action.getConfig();
-                            
-                            if( config != null )
-                            {
-                                fpjwc.setProjectFacetActionConfig( fv.getProjectFacet(), config );
-                            }
-                        }
-                        
-                        result.set( mergeChangesInternal( fpjwc, monitor ) );
-                    }
-                    finally
-                    {
-                        fpjwc.dispose();
-                    }
-                }
-                finally
-                {
-                    endModification();
-                }
-            }
-        };
-        
-        final IWorkspace ws = ResourcesPlugin.getWorkspace();
-        ws.run( wr, ws.getRoot(), IWorkspace.AVOID_UPDATE, monitor );
-        
-        if( result.get() )
-        {
-            notifyListeners( new ProjectModifiedEvent( this ) );
-        }
-    }
-        
-    private boolean modifyInternal( final Set<Action> actions,
-                                    final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        beginTask( monitor, "", actions.size() * 100 ); //$NON-NLS-1$
-        
-        try
-        {
-            validateNotDeleted();
-            
-            final IStatus st = ProjectFacetsManager.check( this.facets, actions );
-            
-            if( ! st.isOK() )
-            {
-                throw new CoreException( st );
-            }
-            
-            // Perform batched validateEdit call.
-            
-            final Set<IFile> files = new HashSet<IFile>();
-            files.add( this.f );
-            
-            for( Action action : actions )
-            {
-                final Object actionConfig = action.getConfig();
-                
-                if( actionConfig instanceof ActionConfig )
-                {
-                    files.addAll( ( (ActionConfig) actionConfig ).getValidateEditFiles() );
-                }
-            }
-            
-            if( ! validateEdit( files ) )
-            {
-                return false;
-            }
-            
-            // Sort the actions into the order of execution.
-            
-            final List<Action> copy = new ArrayList<Action>( actions );
-            ProjectFacetsManager.sort( this.facets, copy );
-            
-            // Execute the actions.
-            
-            for( Action action : copy )
-            {
-                final Action.Type type = action.getType();
-                final ProjectFacetVersion fv = (ProjectFacetVersion) action.getProjectFacetVersion();
-                final IActionDefinition def = fv.getActionDefinition( this.facets, type );
-                final Object config = action.getConfig();
-                
-                if( monitor != null )
-                {
-                    final String subTaskDescriptionTemplate;
-                    
-                    if( type == Action.Type.INSTALL )
-                    {
-                        subTaskDescriptionTemplate = Resources.taskInstallingFacet; 
-                    }
-                    else if( type == Action.Type.UNINSTALL )
-                    {
-                        subTaskDescriptionTemplate = Resources.taskUninstallingFacet;
-                    }
-                    else if( type == Action.Type.VERSION_CHANGE )
-                    {
-                        subTaskDescriptionTemplate = Resources.taskChangingFacetVersion;
-                    }
-                    else
-                    {
-                        throw new IllegalStateException();
-                    }
-                    
-                    final String subTaskDescription
-                        = NLS.bind( subTaskDescriptionTemplate, fv.getProjectFacet().getLabel() );
-                    
-                    monitor.subTask( subTaskDescription );
-                }
-                
-                final IFacetedProjectEvent preEvent
-                    = new ProjectFacetActionEvent( this, getPreEventType( type ), fv, config );
-                                                  
-                notifyListeners( preEvent );
-                worked( monitor, 10 );
-                
-                final IDelegate delegate = ( (ActionDefinition) def ).getDelegate();
-                
-                if( delegate == null )
-                {
-                    worked( monitor, 80 );
-                }
-                else
-                {
-                    callDelegate( fv, delegate, config, type, submon( monitor, 80 ) );
-                }
-        
-                synchronized( this.lock )
-                {
-                    apply( action );
-                }
-                
-                save();
-
-                final IFacetedProjectEvent postEvent
-                    = new ProjectFacetActionEvent( this, getPostEventType( type ), fv, config );
-                
-                notifyListeners( postEvent );
-                worked( monitor, 10 );
-            }
-            
-            return true;
-        }
-        finally
-        {
-            done( monitor );
-        }
-    }
-    
-    public Set<IProjectFacet> getFixedProjectFacets()
-    {
-        synchronized( this.lock )
-        {
-            return this.fixedReadOnly;
-        }
-    }
-    
-    public boolean isFixedProjectFacet( final IProjectFacet facet )
-    {
-        synchronized( this.lock )
-        {
-            return this.fixed.contains( facet );
-        }
-    }
-    
-    public void setFixedProjectFacets( final Set<IProjectFacet> facets )
-    
-        throws CoreException
-        
-    {
-        final ObjectReference<Boolean> result = new ObjectReference<Boolean>( true );
-        
-        final IWorkspaceRunnable wr = new IWorkspaceRunnable()
-        {
-            public void run( final IProgressMonitor monitor ) 
-            
-                throws CoreException
-                
-            {
-                beginModification();
-                
-                try
-                {
-                    result.set( setFixedProjectFacetsInternal( facets, monitor ) );
-                }
-                finally
-                {
-                    endModification();
-                }
-            }
-        };
-        
-        final IWorkspace ws = ResourcesPlugin.getWorkspace();
-        ws.run( wr, ws.getRoot(), IWorkspace.AVOID_UPDATE, null );
-
-        if( result.get() )
-        {
-            notifyListeners( new ProjectModifiedEvent( this ) );
-        }
-    }
-    
-    private boolean setFixedProjectFacetsInternal( final Set<IProjectFacet> facets,
-                                                   final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        beginTask( monitor, "", 2 ); //$NON-NLS-1$
-        
-        try
-        {
-            validateNotDeleted();
-            
-            Set<IProjectFacet> oldFixedFacets = null;
-            
-            synchronized( FacetedProject.this.lock )
-            {
-                if( equals( this.fixed, facets ) )
-                {
-                    return false;
-                }
-                
-                oldFixedFacets = new HashSet<IProjectFacet>( this.fixed );
-                
-                this.fixed.clear();
-                this.fixed.addAll( facets );
-            }
-                
-            save();
-            worked( monitor, 1 );
-
-            notifyListeners( new FixedFacetsChangedEvent( this, oldFixedFacets, facets ) );
-            worked( monitor, 1 );
-            
-            return true;
-        }
-        finally
-        {
-            done( monitor );
-        }
-    }
-    
-    /**
-     * @deprecated
-     */
-    
-    public IRuntime getRuntime()
-    {
-        return getPrimaryRuntime();
-    }
-    
-    /**
-     * @deprecated
-     */
-    
-    @SuppressWarnings( "unchecked" )
-    public void setRuntime( final IRuntime runtime,
-                            final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        final Set runtimes
-            = runtime == null 
-              ? Collections.EMPTY_SET : Collections.singleton( runtime );
-        
-        setTargetedRuntimes( runtimes, monitor );
-    }
-    
-    public boolean isTargetable( final IRuntime runtime )
-    {
-        for( IProjectFacetVersion fv : getProjectFacets() )
-        {
-            if( ! runtime.supports( fv ) )
-            {
-                return false;
-            }
-        }
-        
-        return true;
-    }
-
-    public boolean isTargeted( final IRuntime runtime )
-    {
-        for( IRuntime r : getTargetedRuntimes() )
-        {
-            if( r.getName().equals( runtime.getName() ) )
-            {
-                return true;
-            }
-        }
-        
-        return false;
-    }
-
-    public Set<IRuntime> getTargetedRuntimes()
-    {
-        synchronized( this.lock )
-        {
-            final Set<IRuntime> result = new HashSet<IRuntime>();
-            
-            for( String rname : this.targetedRuntimes )
-            {
-                result.add( getRuntimeFromName( rname ) );
-            }
-            
-            return Collections.unmodifiableSet( result );
-        }
-    }
-    
-    public void setTargetedRuntimes( final Set<IRuntime> runtimes,
-                                     final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        final ObjectReference<Boolean> result = new ObjectReference<Boolean>( true );
-        
-        final IWorkspaceRunnable wr = new IWorkspaceRunnable()
-        {
-            public void run( final IProgressMonitor monitor ) 
-            
-                throws CoreException
-                
-            {
-                beginModification();
-                
-                try
-                {
-                    result.set( setTargetedRuntimesInternal( runtimes, monitor ) );
-                }
-                finally
-                {
-                    endModification();
-                }
-            }
-        };
-        
-        final IWorkspace ws = ResourcesPlugin.getWorkspace();
-        ws.run( wr, ws.getRoot(), IWorkspace.AVOID_UPDATE, null );
-        
-        if( result.get() )
-        {
-            notifyListeners( new ProjectModifiedEvent( this ) );
-        }
-    }
-    
-    private boolean setTargetedRuntimesInternal( final Set<IRuntime> runtimes,
-                                                 final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        beginTask( monitor, "", 2 ); //$NON-NLS-1$
-        
-        try
-        {
-            validateNotDeleted();
-            
-            final Set<IRuntime> oldRuntimes;
-            final Set<IRuntime> newRuntimes;
-            final IRuntime oldPrimary;
-            final IRuntime newPrimary;
-            
-            synchronized( this.lock )
-            {
-                if( this.targetedRuntimes.size() == runtimes.size() )
-                {
-                    boolean different = false;
-                    
-                    for( IRuntime r : runtimes )
-                    {
-                        if( ! this.targetedRuntimes.contains( r.getName() ) )
-                        {
-                            different = true;
-                            break;
-                        }
-                    }
-                    
-                    if( ! different )
-                    {
-                        return false;
-                    }
-                }
-                
-                for( IRuntime runtime : runtimes )
-                {
-                    for( IProjectFacetVersion fv : this.facets )
-                    {
-                        if( ! runtime.supports( fv ) )
-                        {
-                            final String msg 
-                                = NLS.bind( Resources.facetNotSupported, runtime.getLocalizedName(), 
-                                            fv.toString() );
-                            
-                            throw new CoreException( FacetCorePlugin.createErrorStatus( msg ) );
-                        }
-                    }
-                }
-                
-                oldRuntimes = new HashSet<IRuntime>( getTargetedRuntimes() );
-                
-                this.targetedRuntimes.clear();
-                
-                for( IRuntime runtime : runtimes )
-                {
-                    this.targetedRuntimes.add( runtime.getName() );
-                }
-                
-                newRuntimes = new HashSet<IRuntime>( getTargetedRuntimes() );
-                
-                oldPrimary = getPrimaryRuntime();
-                assignPrimaryRuntimeIfNecessary();
-                newPrimary = getPrimaryRuntime();
-            }
-            
-            save();
-            worked( monitor, 1 );
-            
-            final ITargetedRuntimesChangedEvent targetedRuntimesChangedEvent
-                = new TargetedRuntimesChangedEvent( this, oldRuntimes, newRuntimes );
-            
-            notifyListeners( targetedRuntimesChangedEvent );
-            
-            if( ! equals( oldPrimary, newPrimary ) )
-            {
-                notifyListeners( new PrimaryRuntimeChangedEvent( this, oldPrimary, newPrimary ) );
-            }
-            
-            worked( monitor, 1 );
-            
-            return true;
-        }
-        finally
-        {
-            done( monitor );
-        }
-    }
-    
-    public void addTargetedRuntime( final IRuntime runtime,
-                                    final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        final Set<IRuntime> runtimes = new HashSet<IRuntime>( getTargetedRuntimes() );
-        runtimes.add( runtime );
-        setTargetedRuntimes( runtimes, monitor );
-    }
-    
-    public void removeTargetedRuntime( final IRuntime runtime,
-                                       final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        final Set<IRuntime> runtimes = new HashSet<IRuntime>( getTargetedRuntimes() );
-        runtimes.remove( runtime );
-        setTargetedRuntimes( runtimes, monitor );
-    }
-
-    public IRuntime getPrimaryRuntime()
-    {
-        synchronized( this.lock )
-        {
-            if( this.primaryRuntime == null )
-            {
-                return null;
-            }
-            else
-            {
-                return getRuntimeFromName( this.primaryRuntime );
-            }
-        }
-    }
-    
-    public void setPrimaryRuntime( final IRuntime runtime,
-                                   final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        final ObjectReference<Boolean> result = new ObjectReference<Boolean>( true );
-        
-        final IWorkspaceRunnable wr = new IWorkspaceRunnable()
-        {
-            public void run( final IProgressMonitor monitor ) 
-            
-                throws CoreException
-                
-            {
-                beginModification();
-                
-                try
-                {
-                    result.set( setPrimaryRuntimeInternal( runtime, monitor ) );
-                }
-                finally
-                {
-                    endModification();
-                }
-            }
-        };
-        
-        final IWorkspace ws = ResourcesPlugin.getWorkspace();
-        ws.run( wr, ws.getRoot(), IWorkspace.AVOID_UPDATE, null );
-        
-        if( result.get() )
-        {
-            notifyListeners( new ProjectModifiedEvent( this ) );
-        }
-    }
-    
-    private boolean setPrimaryRuntimeInternal( final IRuntime runtime,
-                                               final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        beginTask( monitor, "", 2 ); //$NON-NLS-1$
-        
-        try
-        {
-            validateNotDeleted();
-            
-            if( runtime == null )
-            {
-                throw new NullPointerException();
-            }
-            
-            if( equals( this.primaryRuntime, runtime.getName() ) )
-            {
-                return false;
-            }
-
-            if( ! this.targetedRuntimes.contains( runtime.getName() ) )
-            {
-                final String msg = Resources.newPrimaryNotTargetRuntime;
-                final IStatus st = FacetCorePlugin.createErrorStatus( msg );
-            
-                throw new CoreException( st );
-            }
-            
-            final IRuntime oldPrimary;
-            
-            synchronized( this.lock )
-            {
-                oldPrimary = getPrimaryRuntime();
-                this.primaryRuntime = runtime.getName();
-            }
-            
-            save();
-            worked( monitor, 1 );
-            
-            notifyListeners( new PrimaryRuntimeChangedEvent( this, oldPrimary, runtime ) );
-            worked( monitor, 1 );
-            
-            return true;
-        }
-        finally
-        {
-            done( monitor );
-        }
-    }
-    
-    private static IRuntime getRuntimeFromName( final String name )
-    {
-        IRuntime runtime = null;
-        
-        if( RuntimeManager.isRuntimeDefined( name ) )
-        {
-            runtime = RuntimeManager.getRuntime( name );
-        }
-        
-        if( runtime == null )
-        {
-            for( IRuntime r : RuntimeManager.getRuntimes() )
-            {
-                if( r.getAlternateNames().contains( name ) )
-                {
-                    runtime = r;
-                    break;
-                }
-            }
-        }
-        
-        if( runtime == null )
-        {
-            runtime = new UnknownRuntime( name );
-        }
-        
-        return runtime;
-    }
-    
-    private void assignPrimaryRuntimeIfNecessary()
-    {
-        if( this.targetedRuntimes.isEmpty() )
-        {
-            this.primaryRuntime = null;
-        }
-        else
-        {
-            if( this.primaryRuntime == null || 
-                ! this.targetedRuntimes.contains( this.primaryRuntime ) )
-            {
-                this.primaryRuntime = this.targetedRuntimes.iterator().next();
-            }
-        }
-    }
-    
-    public IStatus validate()
-    {
-        return validate( null );
-    }
-    
-    public IStatus validate( final IProgressMonitor monitor )
-    {
-        synchronized( this.lock )
-        {
-            beginTask( monitor, Resources.taskValidatingFacetedProject, 5 );
-            
-            try
-            {
-                final List<String> errors = new ArrayList<String>();
-                final List<String> warnings = new ArrayList<String>(); 
-                
-                // Check for parsing problems.
-                
-                if( this.parsingException != null )
-                {
-                    if( this.parsingException instanceof SAXException )
-                    {
-                        final String msg 
-                            = NLS.bind( Resources.metadataFileCorrupted, 
-                                        this.f.getFullPath().toString() );
-                        
-                        errors.add( msg );
-                    }
-                    else
-                    {
-                        final String msg 
-                            = NLS.bind( Resources.couldNotReadMetadataFile, 
-                                        this.f.getFullPath().toString() );
-                        
-                        errors.add( msg );
-                    }
-                }
-                
-                worked( monitor, 1 );
-                
-                // Are any of the target runtimes not defined?
-                
-                for( IRuntime r : getTargetedRuntimes() )
-                {
-                    if( r instanceof UnknownRuntime )
-                    {
-                        final String msg = NLS.bind( Resources.runtimeNotDefined, r.getName() );
-                        errors.add( msg );
-                    }
-                }
-                
-                worked( monitor, 1 );
-                
-                // Is an installed facet not supported by the runtime?
-                
-                for( IRuntime r : getTargetedRuntimes() )
-                {
-                    for( IProjectFacetVersion fv : getProjectFacets() )
-                    {
-                        if( ! r.supports( fv ) )
-                        {
-                            final String msg
-                                = NLS.bind( Resources.facetNotSupportedByTarget, fv.toString(), 
-                                            r.getLocalizedName() );
-                            
-                            errors.add( msg );
-                        }
-                    }
-                }
-                
-                worked( monitor, 1 );
-                
-                // Does the project contain any unknown facets or versions?
-                
-                for( IProjectFacetVersion fv : getProjectFacets() )
-                {
-                    final IProjectFacet f = fv.getProjectFacet();
-                    
-                    if( f.getPluginId() == null )
-                    {
-                        final String msg 
-                            = NLS.bind( Resources.installedFacetNotFound, f.getId() );
-                        
-                        warnings.add( msg );
-                    }
-                    else if( fv.getPluginId() == null )
-                    {
-                        final String msg
-                            = NLS.bind( Resources.installedFacetVersionNotFound, 
-                                        f.getId(), fv.getVersionString() );
-
-                        warnings.add( msg );
-                    }
-                }
-                
-                worked( monitor, 1 );
-                
-                // Compile the result.
-                
-                if( errors.isEmpty() && warnings.isEmpty() )
-                {
-                    return Status.OK_STATUS;
-                }
-                else
-                {
-                    final String msg 
-                        = NLS.bind( Resources.projectValidationFailed, 
-                                    this.project.getName() );
-                    
-                    final IStatus[] starray 
-                        = new IStatus[ errors.size() + warnings.size() ];
-                    
-                    for( int i = 0, n = errors.size(); i < n; i++ )
-                    {
-                        starray[ i ] 
-                            = new Status( IStatus.ERROR, FacetCorePlugin.PLUGIN_ID,
-                                          errors.get( i ) );
-                    }
-                    
-                    for( int i = 0, n = warnings.size(), offset = errors.size(); 
-                         i < n; i++ )
-                    {
-                        starray[ i + offset ] 
-                            = new Status( IStatus.WARNING, FacetCorePlugin.PLUGIN_ID,
-                                          warnings.get( i ) );
-                    }
-                    
-                    return new MultiStatus( FacetCorePlugin.PLUGIN_ID, -1,
-                                            starray, msg, null );
-                }
-            }
-            finally
-            {
-                done( monitor );
-            }
-        }
-    }
-    
-    public IFacetedProjectWorkingCopy createWorkingCopy()
-    {
-        synchronized( this.lock )
-        {
-            return new FacetedProjectWorkingCopy( this );
-        }
-    }
-    
-    public void mergeChanges( final IFacetedProjectWorkingCopy fpjwc,
-                              final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        final ObjectReference<Boolean> result = new ObjectReference<Boolean>( true );
-        
-        final IWorkspaceRunnable wr = new IWorkspaceRunnable()
-        {
-            public void run( final IProgressMonitor monitor ) 
-            
-                throws CoreException
-                
-            {
-                beginModification();
-                
-                try
-                {
-                    result.set( mergeChangesInternal( fpjwc, monitor ) );
-                }
-                finally
-                {
-                    endModification();
-                }
-            }
-        };
-        
-        final IWorkspace ws = ResourcesPlugin.getWorkspace();
-        ws.run( wr, ws.getRoot(), IWorkspace.AVOID_UPDATE, monitor );
-        
-        if( result.get() )
-        {
-            notifyListeners( new ProjectModifiedEvent( this ) );
-        }
-    }
-    
-    private boolean mergeChangesInternal( final IFacetedProjectWorkingCopy fpjwc,
-                                          final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        final SubMonitor pm = SubMonitor.convert( monitor, 26 );
-        
-        try
-        {
-            boolean modified = false;
-            
-            // Figure out whether we can set runtimes before applying facet actions. This is better
-            // for performance reasons, but may not work if the project contains facets that are
-            // not supported by the new runtime. You can get into this situation if the user tries
-            // to simultaneously uninstall a facet and select a different runtime. The fallback
-            // solution for this situation is to set the targeted runtimes to an empty list first,
-            // then apply the facet actions, and then set the targeted runtimes to the new list.
-            // This is more drastic than necessary in all situations, but it is not clear that
-            // implementing additional optimizations is necessary either.
-            
-            boolean canSetRuntimesFirst = true;
-            
-            for( IProjectFacetVersion fv : getProjectFacets() )
-            {
-                for( IRuntime r : fpjwc.getTargetedRuntimes() )
-                {
-                    if( ! r.supports( fv ) )
-                    {
-                        canSetRuntimesFirst = false;
-                        break;
-                    }
-                }
-                
-                if( ! canSetRuntimesFirst )
-                {
-                    break;
-                }
-            }
-            
-            pm.subTask( Resources.taskConfiguringRuntimes );
-            
-            if( canSetRuntimesFirst )
-            {
-                if( setTargetedRuntimesInternal( fpjwc.getTargetedRuntimes(), submon( pm, 2 ) ) )
-                {
-                    modified = true;
-                }
-                
-                if( getPrimaryRuntime() != null )
-                {
-                    setPrimaryRuntimeInternal( fpjwc.getPrimaryRuntime(), submon( pm, 2 ) );
-                }
-                else
-                {
-                    pm.worked( 2 );
-                }
-            }
-            else
-            {
-                final Set<IRuntime> emptySet = Collections.emptySet();
-                setTargetedRuntimesInternal( emptySet, submon( pm, 4 ) );
-            }
-            
-            if( modifyInternal( fpjwc.getProjectFacetActions(), 
-                                pm.newChild( 16, SubMonitor.SUPPRESS_SETTASKNAME ) ) )
-            {
-                modified = true;
-            }
-            
-            if( ! canSetRuntimesFirst )
-            {
-                pm.subTask( Resources.taskConfiguringRuntimes );
-                
-                if( setTargetedRuntimesInternal( fpjwc.getTargetedRuntimes(), submon( pm, 2 ) ) )
-                {
-                    modified = true;
-                }
-                
-                if( getPrimaryRuntime() != null )
-                {
-                    if( setPrimaryRuntimeInternal( fpjwc.getPrimaryRuntime(), submon( pm, 2 ) ) )
-                    {
-                        modified = true;
-                    }
-                }
-                else
-                {
-                    pm.worked( 2 );
-                }
-            }
-            
-            if( setFixedProjectFacetsInternal( fpjwc.getFixedProjectFacets(), submon( pm, 2 ) ) )
-            {
-                modified = true;
-            }
-            
-            return modified;
-        }
-        finally
-        {
-            pm.done();
-        }
-    }
-    
-    public IMarker createErrorMarker( final String message )
-    
-        throws CoreException
-        
-    {
-        return createErrorMarker( IFacetedProjectValidator.BASE_MARKER_ID, message );
-    }
-
-    public IMarker createErrorMarker( final String type,
-                                      final String message )
-    
-        throws CoreException
-        
-    {
-        return createMarker( IMarker.SEVERITY_ERROR, type, message );
-    }
-    
-    public IMarker createWarningMarker( final String message )
-    
-        throws CoreException
-        
-    {
-        return createWarningMarker( IFacetedProjectValidator.BASE_MARKER_ID, message );
-    }
-    
-    public IMarker createWarningMarker( final String type,
-                                      final String message )
-    
-        throws CoreException
-        
-    {
-        return createMarker( IMarker.SEVERITY_WARNING, type, message );
-    }
-    
-    private IMarker createMarker( final int severity,
-                                  final String type,
-                                  final String message )
-      
-        throws CoreException
-      
-    {
-        final IMarker[] existing
-            = this.project.findMarkers( type, false, IResource.DEPTH_ZERO );
-        
-        for( int i = 0; i < existing.length; i++ )
-        {
-            final IMarker m = existing[ i ];
-            
-            if( m.getAttribute( IMarker.SEVERITY, -1 ) == severity &&
-                m.getAttribute( IMarker.MESSAGE, "" ).equals( message ) ) //$NON-NLS-1$
-            {
-                return m;
-            }
-        }
-        
-        final IMarker m = this.project.createMarker( type );
-      
-        m.setAttribute( IMarker.MESSAGE, message ); 
-        m.setAttribute( IMarker.SEVERITY, severity );
-      
-        return m;
-    }
-    
-    public void addListener( final IFacetedProjectListener listener,
-                             final IFacetedProjectEvent.Type... types )
-    {
-        this.listeners.addListener( listener, types );
-    }
-    
-    public void removeListener( final IFacetedProjectListener listener )
-    {
-        this.listeners.removeListener( listener );
-    }
-    
-    private void notifyListeners( final IFacetedProjectEvent event )
-    {
-        if( FacetCorePlugin.checkDebugOption( TRACING_EVENTS ) )
-        {
-            if( FacetCorePlugin.checkDebugOption( TRACING_EVENTS_STACKTRACE ) )
-            {
-                final StackTraceElement[] stacktrace = Thread.currentThread().getStackTrace();
-                
-                System.out.println( "Faceted project event generated by:" ); //$NON-NLS-1$
-                
-                for( int i = 2; i < stacktrace.length; i++ )
-                {
-                    final StackTraceElement stackTraceElement = stacktrace[ i ]; 
-                    final String c = stackTraceElement.getClassName();
-                    final String m = stackTraceElement.getMethodName();
-                    final String f = stackTraceElement.getFileName();
-                    final int line = stackTraceElement.getLineNumber();
-                    
-                    if( i != 2 )
-                    {
-                        System.out.print( "    at " ); //$NON-NLS-1$
-                    }
-                    
-                    System.out.println( c + "." + m + "(" + f + ":" + line + ")" ); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-                }
-            }
-            
-            System.out.println( event );
-        }
-
-        this.listeners.notifyListeners( event );
-        FacetedProjectFrameworkImpl.getInstance().getProjectListenerRegistry().notifyListeners( event );
-    }
-    
-    /**
-     * @deprecated
-     */
-    
-    public void addListener( final org.eclipse.wst.common.project.facet.core.IFacetedProjectListener listener )
-    {
-        this.listeners.addListener( new LegacyListenerAdapter( listener ), 
-                                    IFacetedProjectEvent.Type.PROJECT_MODIFIED );
-    }
-    
-    /**
-     * @deprecated
-     */
-    
-    public void removeListener( final org.eclipse.wst.common.project.facet.core.IFacetedProjectListener listener )
-    {
-        for( IFacetedProjectListener x 
-             : this.listeners.getListeners( IFacetedProjectEvent.Type.PROJECT_MODIFIED ) )
-        {
-            if( x instanceof LegacyListenerAdapter &&
-                ( (LegacyListenerAdapter) x ).getLegacyListener() == listener )
-            {
-                removeListener( x );
-            }
-        }
-    }
-    
-    public Preferences getPreferences( final IProjectFacet facet )
-    
-        throws BackingStoreException
-        
-    {
-        return FacetedProjectFrameworkImpl.getInstance().getPreferences( facet, this );
-    }
-
-    private void beginModification()
-    
-        throws CoreException
-        
-    {
-        synchronized( this.lock )
-        {
-            while( this.isBeingModified )
-            {
-                if( this.modifierThread == Thread.currentThread() )
-                {
-                    final String msg = Resources.illegalModificationMsg;
-                    final IStatus st = FacetCorePlugin.createErrorStatus( msg );
-                    
-                    throw new CoreException( st );
-                }
-                
-                try
-                {
-                    this.lock.wait();
-                }
-                catch( InterruptedException e ) {}
-            }
-            
-            this.isBeingModified = true;
-            this.modifierThread = Thread.currentThread();
-        }
-    }
-    
-    private void endModification()
-    {
-        synchronized( this.lock )
-        {
-            this.isBeingModified = false;
-            this.modifierThread = null;
-            this.lock.notifyAll();
-        }
-    }
-    
-    private static IFacetedProjectEvent.Type getPreEventType( final Action.Type t )
-    {
-        if( t == Action.Type.INSTALL )
-        {
-            return IFacetedProjectEvent.Type.PRE_INSTALL;
-        }
-        else if( t == Action.Type.UNINSTALL )
-        {
-            return IFacetedProjectEvent.Type.PRE_UNINSTALL;
-        }
-        else if( t == Action.Type.VERSION_CHANGE )
-        {
-            return IFacetedProjectEvent.Type.PRE_VERSION_CHANGE;
-        }
-        else
-        {
-            throw new IllegalStateException();
-        }
-    }
-    
-    private static IFacetedProjectEvent.Type getPostEventType( final Action.Type t )
-    {
-        if( t == Action.Type.INSTALL )
-        {
-            return IFacetedProjectEvent.Type.POST_INSTALL;
-        }
-        else if( t == Action.Type.UNINSTALL )
-        {
-            return IFacetedProjectEvent.Type.POST_UNINSTALL;
-        }
-        else if( t == Action.Type.VERSION_CHANGE )
-        {
-            return IFacetedProjectEvent.Type.POST_VERSION_CHANGE;
-        }
-        else
-        {
-            throw new IllegalStateException();
-        }
-    }
-
-    private void callDelegate( final IProjectFacetVersion fv,
-                               final IDelegate delegate,
-                               final Object config,
-                               final Object context,
-                               final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        final String tracingDelegateCallsStr
-            = Platform.getDebugOption( TRACING_DELEGATE_CALLS );
-        
-        final boolean tracingDelegateCalls 
-            = tracingDelegateCallsStr == null ? false 
-              : tracingDelegateCallsStr.equals( "true" );  //$NON-NLS-1$
-        
-        long timeStarted = -1;
-        
-        if( tracingDelegateCalls )
-        {
-            final String msg
-                = Resources.bind( Resources.tracingDelegateStarting,
-                                  fv.getProjectFacet().getId(),
-                                  fv.getVersionString(), context.toString(),
-                                  delegate.getClass().getName() );
-            
-            System.out.println( msg );
-            
-            timeStarted = System.currentTimeMillis();
-        }
-        
-        try
-        {
-            delegate.execute( this.project, fv, config, monitor ); 
-        }
-        catch( Exception e )
-        {
-            final String msg;
-            
-            if( context == Action.Type.INSTALL )
-            {
-                msg = NLS.bind( Resources.failedOnInstall, fv );
-            }
-            else if( context == Action.Type.UNINSTALL )
-            {
-                msg = NLS.bind( Resources.failedOnUninstall, fv );
-            }
-            else if( context == Action.Type.VERSION_CHANGE )
-            {
-                msg = NLS.bind( Resources.failedOnVersionChange, 
-                                fv.getProjectFacet().getLabel(), 
-                                fv.getVersionString() );
-            }
-            else
-            {
-                throw new IllegalStateException( context.toString() );
-            }
-            
-            final IStatus status
-                = new Status( IStatus.ERROR, FacetCorePlugin.PLUGIN_ID, 0, 
-                              msg, e );
-
-            final FacetedProjectFrameworkException wrapper 
-                = new FacetedProjectFrameworkException( status );
-            
-            if( e instanceof FacetedProjectFrameworkException &&
-                ( (FacetedProjectFrameworkException) e ).isExpected() )
-            {
-                wrapper.setExpected( true );
-            }
-            
-            throw wrapper;
-        }
-        
-        if( context == Action.Type.UNINSTALL )
-        {
-            final IProjectFacet facet = fv.getProjectFacet();
-            
-            try
-            {
-                getPreferences( facet ).removeNode();
-            }
-            catch( BackingStoreException e )
-            {
-                FacetCorePlugin.log( e );
-            }
-        }
-        
-        if( tracingDelegateCalls )
-        {
-            final long duration = System.currentTimeMillis() - timeStarted;
-            
-            final String msg 
-                = NLS.bind( Resources.tracingDelegateFinished, 
-                            String.valueOf( duration ) );
-            
-            System.out.println( msg );
-        }
-    }
-    
-    private void apply( final Action action )
-    {
-        final Action.Type type = action.getType();
-        final IProjectFacetVersion fv = action.getProjectFacetVersion();
-        
-        if( type == Action.Type.INSTALL )
-        {
-            this.facets.add( fv );
-        }
-        else if( type == Action.Type.UNINSTALL )
-        {
-            this.facets.remove( fv );
-        }
-        else if( type == Action.Type.VERSION_CHANGE )
-        {
-            for( IProjectFacetVersion x : this.facets )
-            {
-                if( x.getProjectFacet() == fv.getProjectFacet() )
-                {
-                    this.facets.remove( x );
-                    break;
-                }
-            }
-            
-            this.facets.add( fv );
-        }
-    }
-    
-    private void save()
-    
-        throws CoreException
-        
-    {
-        final StringWriter w = new StringWriter();
-        final PrintWriter out = new PrintWriter( w );
-        
-        final String nl = System.getProperty( "line.separator" ); //$NON-NLS-1$
-        
-        out.print( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" ); //$NON-NLS-1$
-        out.print( nl );
-        out.print( "<faceted-project>" ); //$NON-NLS-1$
-        out.print( nl );
-        
-        if( this.primaryRuntime != null )
-        {
-            out.print( "  <runtime name=\"" ); //$NON-NLS-1$
-            out.print( escape( this.primaryRuntime ) );
-            out.print( "\"/>" ); //$NON-NLS-1$
-            out.print( nl );
-        }
-        
-        for( String name : this.targetedRuntimes )
-        {
-            if( ! name.equals( this.primaryRuntime ) )
-            {
-                out.print( "  <secondary-runtime name=\"" ); //$NON-NLS-1$
-                out.print( escape( name ) );
-                out.print( "\"/>" ); //$NON-NLS-1$
-                out.print( nl );
-            }
-        }
-        
-        for( IProjectFacet f : this.fixed )
-        {
-            out.print( "  <fixed facet=\"" ); //$NON-NLS-1$
-            out.print( escape( f.getId() ) );
-            out.print( "\"/>" ); //$NON-NLS-1$
-            out.print( nl );
-        }
-        
-        for( IProjectFacetVersion fv : this.facets )
-        {
-            out.print( "  <installed facet=\"" ); //$NON-NLS-1$
-            out.print( escape( fv.getProjectFacet().getId() ) );
-            out.print( "\" version=\"" ); //$NON-NLS-1$
-            out.print( escape( fv.getVersionString() ) );
-            out.print( "\"/>" ); //$NON-NLS-1$
-            out.print( nl );
-        }
-        
-        out.print( "</faceted-project>" ); //$NON-NLS-1$
-        out.print( nl );
-        
-        final byte[] bytes;
-        
-        try
-        {
-            bytes = w.getBuffer().toString().getBytes( "UTF-8" ); //$NON-NLS-1$
-        }
-        catch( UnsupportedEncodingException e )
-        {
-            // Unexpected. All JVMs are supposed to support UTF-8.
-            throw new RuntimeException( e );
-        }
-        
-        final InputStream in = new ByteArrayInputStream( bytes );
-        
-        if( this.f.exists() )
-        {
-            validateEdit( this.f );
-            this.f.setContents( in, true, false, null );
-        }
-        else
-        {
-            final IFolder parent = (IFolder) this.f.getParent();
-            
-            if( ! parent.exists() )
-            {
-                parent.create( true, true, null );
-            }
-            
-            this.f.create( in, true, null );
-        }
-        
-        this.fModificationStamp = this.f.getModificationStamp();
-        this.parsingException = null;
-    }
-
-    public void refresh()
-    
-        throws CoreException
-        
-    {
-        refresh( false );
-    }
-    
-    private void refresh( final boolean isInitializing )
-    
-        throws CoreException
-        
-    {
-        synchronized( this.lock )
-        {
-            if( this.isBeingModified )
-            {
-                return;
-            }
-            
-            if( this.f.getModificationStamp() == this.fModificationStamp )
-            {
-                return;
-            }
-            
-            beginModification();
-            
-            try
-            {
-                this.facets.clear();
-                this.fixed.clear();
-                this.unknownFacets.clear();
-                this.targetedRuntimes.clear();
-                this.primaryRuntime = null;
-                
-                if( ! this.f.exists() )
-                {
-                    this.fModificationStamp = -1;
-                }
-                else
-                {
-                    this.fModificationStamp = this.f.getModificationStamp();
-                    
-                    Element root = null;
-                    
-                    try
-                    {
-                        root = parse( this.f.getLocation().toFile() );
-                        this.parsingException = null;
-                    }
-                    catch( Exception e )
-                    {
-                        this.parsingException = e;
-                    }
-                    
-                    if( this.parsingException == null )
-                    {
-                        final Element[] elements = children( root );
-                        
-                        for( int i = 0; i < elements.length; i++ )
-                        {
-                            final Element e = elements[ i ];
-                            final String name = e.getNodeName();
-                            
-                            if( name.equals( EL_RUNTIME ) )
-                            {
-                                this.primaryRuntime = e.getAttribute( ATTR_NAME );
-                                this.targetedRuntimes.add( this.primaryRuntime );
-                            }
-                            else if( name.equals( EL_SECONDARY_RUNTIME ) )
-                            {
-                                this.targetedRuntimes.add( e.getAttribute( ATTR_NAME ) );
-                            }
-                            else if( name.equals( EL_FIXED ) )
-                            {
-                                final String id = e.getAttribute( ATTR_FACET );
-                                final IProjectFacet f;
-                                
-                                if( ProjectFacetsManager.isProjectFacetDefined( id ) )
-                                {
-                                    f = ProjectFacetsManager.getProjectFacet( id );
-                                }
-                                else
-                                {
-                                    f = createUnknownFacet( id );
-                                }
-                                
-                                this.fixed.add( f );
-                            }
-                            else if( name.equals( EL_INSTALLED ) )
-                            {
-                                final String id = e.getAttribute( ATTR_FACET );
-                                final String version = e.getAttribute( ATTR_VERSION );
-                                
-                                final IProjectFacet f;
-                                
-                                if( ProjectFacetsManager.isProjectFacetDefined( id ) )
-                                {
-                                    f = ProjectFacetsManager.getProjectFacet( id );
-                                }
-                                else
-                                {
-                                    f = createUnknownFacet( id );
-                                }
-                                
-                                final IProjectFacetVersion fv;
-                                
-                                if( f.hasVersion( version ) )
-                                {
-                                    fv = f.getVersion( version );
-                                }
-                                else
-                                {
-                                    fv = createUnknownFacetVersion( f, version );
-                                }
-                                    
-                                this.facets.add( fv );
-                            }
-                        }
-                    }
-                }
-            }
-            finally
-            {
-                endModification();
-            }
-        }
-
-        // If we got here, the project was changed. All of the no-op checks return early. The
-        // exception is the case where the faceted project is being initialized for the first
-        // time in the workbench session (for instance after workbench restart or when an 
-        // existing faceted project is imported into the workspace).
-        
-        if( ! isInitializing )
-        {
-            notifyListeners( new ProjectModifiedEvent( this ) );
-        }
-    }
-    
-    void markDeleted()
-    
-        throws CoreException
-        
-    {
-        synchronized( this.lock )
-        {
-            beginModification();
-            
-            try
-            {
-                this.facets.clear();
-                this.fixed.clear();
-                this.unknownFacets.clear();
-                this.targetedRuntimes.clear();
-                this.primaryRuntime = null;
-            }
-            finally
-            {
-                endModification();
-            }
-            
-            this.isDeleted = true;
-        }
-    }
-    
-    private void validateNotDeleted()
-    
-        throws CoreException
-        
-    {
-        if( this.isDeleted )
-        {
-            final String msg = Resources.cannotModifyDeletedProject;
-            throw new CoreException( FacetCorePlugin.createErrorStatus( msg ) );
-        }
-    }
-    
-    private ProjectFacet createUnknownFacet( final String id )
-    {
-        ProjectFacet f = this.unknownFacets.get( id );
-        
-        if( f == null )
-        {
-            f = new ProjectFacet();
-            f.setId( id );
-            f.setLabel( id );
-            f.setDescription( "" ); //$NON-NLS-1$
-            
-            this.unknownFacets.put( id, f );
-        }
-        
-        return f;
-    }
-    
-    private ProjectFacetVersion createUnknownFacetVersion( final IProjectFacet f,
-                                                           final String version )
-    {
-        final ProjectFacetVersion fv;
-        
-        if( f.hasVersion( version ) )
-        {
-            fv = (ProjectFacetVersion) f.getVersion( version );
-        }
-        else
-        {
-            fv = new ProjectFacetVersion();
-            fv.setProjectFacet( (ProjectFacet) f );
-            fv.setVersionString( version );
-        }
-        
-        return fv;
-    }
-    
-    private static Element parse( final File f )
-    
-        throws IOException, SAXException
-        
-    {
-        final DocumentBuilder docbuilder;
-        
-        try
-        {
-            final DocumentBuilderFactory factory 
-                = DocumentBuilderFactory.newInstance();
-            
-            factory.setValidating( false );
-            
-            docbuilder = factory.newDocumentBuilder();
-            
-            docbuilder.setEntityResolver
-            (
-                new EntityResolver()
-                {
-                    public InputSource resolveEntity( final String publicID, 
-                                                      final String systemID )
-                    {
-                        return new InputSource( new StringReader( "" ) ); //$NON-NLS-1$
-                    }
-                }
-            );
-        }
-        catch( ParserConfigurationException e )
-        {
-            throw new RuntimeException( e );
-        }
-
-        return docbuilder.parse( f ).getDocumentElement();
-    }
-    
-    private Element[] children( final Element element )
-    {
-        final List<Element> list = new ArrayList<Element>();
-        final NodeList nl = element.getChildNodes();
-        
-        for( int i = 0, n = nl.getLength(); i < n; i++ )
-        {
-            final Node node = nl.item( i );
-            
-            if( node.getNodeType() == Node.ELEMENT_NODE )
-            {
-                list.add( (Element) node );
-            }
-        }
-        
-        return list.toArray( new Element[ list.size() ] );
-    }
-    
-    private static boolean equals( final Object obj1,
-                                   final Object obj2 )
-    {
-        if( obj1 == obj2 )
-        {
-            return true;
-        }
-        else if( obj1 == null || obj2 == null )
-        {
-            return false;
-        }
-        else
-        {
-            return obj1.equals( obj2 );
-        }
-    }
-    
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String failedOnInstall;
-        public static String failedOnUninstall;
-        public static String failedOnVersionChange;
-        public static String facetNotSupported;
-        public static String illegalModificationMsg;
-        public static String tracingDelegateStarting;
-        public static String tracingDelegateFinished;
-        public static String newPrimaryNotTargetRuntime;
-        public static String cannotModifyDeletedProject;
-        
-        // Task Descriptions
-        
-        public static String taskValidatingFacetedProject;
-        public static String taskInstallingFacet;
-        public static String taskUninstallingFacet;
-        public static String taskChangingFacetVersion;
-        public static String taskConfiguringRuntimes;
-        
-        // Validation Messages
-        
-        public static String projectValidationFailed;
-        public static String metadataFileCorrupted;
-        public static String couldNotReadMetadataFile;
-        public static String runtimeNotDefined;
-        public static String facetNotSupportedByTarget;
-        public static String installedFacetNotFound;
-        public static String installedFacetVersionNotFound;
-        
-        static
-        {
-            initializeMessages( FacetedProject.class.getName(), 
-                                Resources.class );
-        }
-        
-        public static final String bind( final String msg,
-                                         final String arg1,
-                                         final String arg2,
-                                         final String arg3,
-                                         final String arg4 )
-        {
-            return NLS.bind( msg, new Object[] { arg1, arg2, arg3, arg4 } );
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProject.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProject.properties
deleted file mode 100644
index f7f9c31..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProject.properties
+++ /dev/null
@@ -1,31 +0,0 @@
-failedOnInstall = Failed while installing {0}.
-failedOnUninstall = Failed while uninstalling {0}.
-failedOnVersionChange = Failed while changing version of {0} to {1}.
-facetNotSupported = Runtime {0} does not support project facet {1}.
-illegalModificationMsg = Cannot modify faceted project from within a facet delegate.
-tracingDelegateStarting = \
-Calling project facet delegate:\n\
-\  facet: {0} : {1}\n\
-\  type:  {2}\n\
-\  class: {3}
-tracingDelegateFinished = Project facet delegate completed successfully in {0} ms.
-newPrimaryNotTargetRuntime = Primary runtime has to be one of the targeted runtimes.
-cannotModifyDeletedProject = Cannot modify a deleted project.
-
-# Task Descriptions
-
-taskValidatingFacetedProject = Validating faceted project...
-taskInstallingFacet = Installing {0} facet...
-taskUninstallingFacet = Uninstalling {0} facet...
-taskChangingFacetVersion = Changing version of {0} facet...
-taskConfiguringRuntimes = Configuring targeted runtimes...
-
-# Validation Messages
-
-projectValidationFailed = Encountered problems while validating faceted project "{0}".
-metadataFileCorrupted = Faceted project metadata file "{0}" is corrupted and could not be parsed.
-couldNotReadMetadataFile = Faceted project metadata file "{0}" could not be read.
-runtimeNotDefined = Target runtime {0} is not defined.
-facetNotSupportedByTarget = Project facet {0} is not supported by target runtime {1}.
-installedFacetNotFound = Implementation of project facet {0} could not be found. Functionality will be limited.
-installedFacetVersionNotFound = Implementation of version {1} of project facet {0} could not be found. Functionality will be limited.
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectAdapter.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectAdapter.java
deleted file mode 100644
index 8df6eb3..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectAdapter.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-
-/**
- * Adapts {@link IProject} to {@link IFacetedProject}.
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class FacetedProjectAdapter
-
-    implements IAdapterFactory
-    
-{
-    private static final Class[] ADAPTER_TYPES = { IFacetedProject.class };
-    
-    public Object getAdapter( final Object adaptable, 
-                              final Class adapterType )
-    {
-        if( adapterType == IFacetedProject.class )
-        {
-            try
-            {
-                return ProjectFacetsManager.create( (IProject) adaptable );
-            }
-            catch( CoreException e )
-            {
-                FacetCorePlugin.log( e.getStatus() );
-            }
-        }
-
-        return null;
-    }
-
-    public Class[] getAdapterList()
-    {
-        return ADAPTER_TYPES;
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectFrameworkImpl.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectFrameworkImpl.java
deleted file mode 100644
index 238c25d..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectFrameworkImpl.java
+++ /dev/null
@@ -1,2462 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import static org.eclipse.wst.common.project.facet.core.util.internal.FileUtil.FILE_DOT_PROJECT;
-import static org.eclipse.wst.common.project.facet.core.util.internal.FileUtil.validateEdit;
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.findOptionalElement;
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.findRequiredAttribute;
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.getElementValue;
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.instantiate;
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.reportMissingAttribute;
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.reportMissingElement;
-
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.lang.ref.WeakReference;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.core.runtime.preferences.InstanceScope;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.IActionDefinition;
-import org.eclipse.wst.common.project.facet.core.ICategory;
-import org.eclipse.wst.common.project.facet.core.IConstraint;
-import org.eclipse.wst.common.project.facet.core.IDefaultVersionProvider;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectTemplate;
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectWorkingCopy;
-import org.eclipse.wst.common.project.facet.core.IGroup;
-import org.eclipse.wst.common.project.facet.core.IPreset;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.IVersionExpr;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject.Action;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectEvent;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectFrameworkEvent;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectFrameworkListener;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener;
-import org.eclipse.wst.common.project.facet.core.events.internal.EventsExtensionPoint;
-import org.eclipse.wst.common.project.facet.core.events.internal.FacetedProjectFrameworkEvent;
-import org.eclipse.wst.common.project.facet.core.events.internal.FrameworkListenerRegistry;
-import org.eclipse.wst.common.project.facet.core.events.internal.LegacyEventHandlerAdapter;
-import org.eclipse.wst.common.project.facet.core.events.internal.ProjectListenerRegistry;
-import org.eclipse.wst.common.project.facet.core.util.internal.IndexedSet;
-import org.eclipse.wst.common.project.facet.core.util.internal.VersionExpr;
-import org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.InvalidExtensionException;
-import org.osgi.service.prefs.BackingStoreException;
-import org.osgi.service.prefs.Preferences;
-
-/**
- * The implementation of the {@link ProjectFacetsManager} abstract class.
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class FacetedProjectFrameworkImpl
-{
-    private static final String EXTENSION_ID = "facets"; //$NON-NLS-1$
-
-    private static final String ATTR_CATEGORY = "category"; //$NON-NLS-1$
-    private static final String ATTR_CLASS = "class"; //$NON-NLS-1$
-    private static final String ATTR_FACET = "facet"; //$NON-NLS-1$
-    private static final String ATTR_GROUP = "group"; //$NON-NLS-1$
-    private static final String ATTR_ID = "id"; //$NON-NLS-1$
-    private static final String ATTR_NAME = "name"; //$NON-NLS-1$
-    private static final String ATTR_PROVIDER = "provider"; //$NON-NLS-1$
-    private static final String ATTR_SOFT = "soft"; //$NON-NLS-1$
-    private static final String ATTR_TYPE = "type"; //$NON-NLS-1$
-    private static final String ATTR_VALUE = "value"; //$NON-NLS-1$
-    private static final String ATTR_VERSION = "version"; //$NON-NLS-1$
-    private static final String EL_ACTION = "action"; //$NON-NLS-1$
-    private static final String EL_CATEGORY = "category"; //$NON-NLS-1$
-    private static final String EL_CONFIG_FACTORY = "config-factory"; //$NON-NLS-1$
-    private static final String EL_CONSTRAINT = "constraint"; //$NON-NLS-1$
-    private static final String EL_DEFAULT_VERSION = "default-version"; //$NON-NLS-1$
-    private static final String EL_DELEGATE = "delegate"; //$NON-NLS-1$
-    private static final String EL_DESCRIPTION = "description"; //$NON-NLS-1$
-    private static final String EL_EVENT_HANDLER = "event-handler"; //$NON-NLS-1$
-    private static final String EL_GROUP = "group"; //$NON-NLS-1$
-    private static final String EL_GROUP_MEMBER = "group-member"; //$NON-NLS-1$
-    private static final String EL_LABEL = "label"; //$NON-NLS-1$
-    private static final String EL_MEMBER = "member"; //$NON-NLS-1$
-    private static final String EL_PROJECT_FACET = "project-facet"; //$NON-NLS-1$
-    private static final String EL_PROJECT_FACET_VERSION = "project-facet-version"; //$NON-NLS-1$
-    private static final String EL_PROPERTY = "property"; //$NON-NLS-1$
-    private static final String EL_VERSION_COMPARATOR = "version-comparator"; //$NON-NLS-1$
-    
-    private static final String DEFAULT_DESCRIPTION = ""; //$NON-NLS-1$
-    
-    private static FacetedProjectFrameworkImpl instance = null;
-    
-    private final IndexedSet<String,IProjectFacet> facets;
-    private final IndexedSet<String,IActionDefinition> actions;
-    private final IndexedSet<String,ICategory> categories;
-    private final IndexedSet<String,IPreset> presets;
-    private boolean presetsInitialized = false;
-    private final IndexedSet<String,IGroup> groups;
-    private final Map<String,FacetedProject> projects;
-    private final ProjectListenerRegistry projectListenerRegistry;
-    private final FrameworkListenerRegistry frameworkListenerRegistry;
-    
-    private WeakReference<ProjectFacetPreferencesGroup> globalPreferencesGroup = null;
-    
-    private Map<String,WeakReference<ProjectFacetPreferencesGroup>> projectPreferencesGroups 
-        = new HashMap<String,WeakReference<ProjectFacetPreferencesGroup>>();
-    
-    private FacetedProjectFrameworkImpl()
-    {
-        long activationStart = 0;
-        
-        if( FacetCorePlugin.isTracingFrameworkActivation() )
-        {
-            final StringWriter sw = new StringWriter();
-            final PrintWriter pw = new PrintWriter( sw );
-            ( new Throwable() ).printStackTrace( pw );
-            
-            String context = sw.getBuffer().toString();
-            final int endOfFirstLine = context.indexOf( '\n' );
-            context = context.substring( endOfFirstLine + 1 );
-            context = context.replaceAll( "\\t", "  " ); //$NON-NLS-1$ //$NON-NLS-2$
-            
-            int length = context.length();
-            
-            if( context.charAt( length - 2 ) == '\r' )
-            {
-                length = length - 2;
-            }
-            else
-            {
-                length = length - 1;
-            }
-            
-            context = context.substring( 0, length );
-            
-            final String msg 
-                = NLS.bind( Resources.tracingFrameworkActivationStarting, 
-                            context ); 
-            
-            System.out.println( msg );
-            
-            activationStart = System.currentTimeMillis();
-        }
-        
-        this.facets = new IndexedSet<String,IProjectFacet>();
-        this.actions = new IndexedSet<String,IActionDefinition>();
-        this.categories = new IndexedSet<String,ICategory>();
-        this.presets = new IndexedSet<String,IPreset>();
-        this.presetsInitialized = false;
-        this.groups = new IndexedSet<String,IGroup>();
-        this.projects = new HashMap<String,FacetedProject>();
-        this.projectListenerRegistry = new ProjectListenerRegistry();
-        this.frameworkListenerRegistry = new FrameworkListenerRegistry();
-        
-        readMetadata();
-        
-        EventsExtensionPoint.processExtensions( this );
-        
-        ( new ResourceChangeListener() ).register();
-        
-        if( FacetCorePlugin.isTracingFrameworkActivation() )
-        {
-            final long duration 
-                = System.currentTimeMillis() - activationStart;
-            
-            final String msg
-                = NLS.bind( Resources.tracingFrameworkActivationFinished, 
-                            String.valueOf( duration ) );
-            
-            System.out.println( msg );
-        }
-    }
-    
-    public synchronized static FacetedProjectFrameworkImpl getInstance()
-    {
-        if( instance == null )
-        {
-            instance = new FacetedProjectFrameworkImpl();
-        }
-        
-        return instance;
-    }
-    
-    public Set<IProjectFacet> getProjectFacets()
-    {
-        return this.facets.getUnmodifiable();
-    }
-    
-    public boolean isProjectFacetDefined( final String id )
-    {
-        return this.facets.containsKey( id );
-    }
-    
-    public IProjectFacet getProjectFacet( final String id )
-    {
-        final IProjectFacet f = this.facets.get( id );
-        
-        if( f == null )
-        {
-            final String msg = NLS.bind( Resources.facetNotDefined, id );
-            throw new IllegalArgumentException( msg );
-        }
-        
-        return f;
-    }
-    
-    public Set<IActionDefinition> getActionDefinitions()
-    {
-        return this.actions.getUnmodifiable();
-    }
-    
-    public boolean isActionDefined( final String id )
-    {
-        return this.actions.containsKey( id );
-    }
-    
-    public IActionDefinition getActionDefinition( final String id )
-    {
-        final IActionDefinition adef = this.actions.get( id );
-        
-        if( adef == null )
-        {
-            final String msg = NLS.bind( Resources.actionNotDefined, id );
-            throw new IllegalArgumentException( msg );
-        }
-        
-        return adef;
-    }
-    
-    public Set<ICategory> getCategories()
-    {
-        return this.categories.getUnmodifiable();
-    }
-
-    public boolean isCategoryDefined( final String id )
-    {
-        return this.categories.containsKey( id );
-    }
-    
-    public ICategory getCategory( final String id )
-    {
-        final ICategory category = this.categories.get( id );
-        
-        if( category == null )
-        {
-            final String msg = NLS.bind( Resources.categoryNotDefined, id );
-            throw new IllegalArgumentException( msg );
-        }
-        
-        return category;
-    }
-    
-    public Set<IPreset> getPresets()
-    {
-        synchronized( this.presets )
-        {
-            initializePresets();
-            return this.presets.getUnmodifiable();
-        }
-    }
-    
-    public boolean isPresetDefined( final String id )
-    {
-        synchronized( this.presets )
-        {
-            initializePresets();
-            return this.presets.containsKey( id );
-        }
-    }
-    
-    public IPreset getPreset( final String id )
-    {
-        synchronized( this.presets )
-        {
-            initializePresets();
-            
-            final IPreset preset = this.presets.get( id );
-            
-            if( preset == null )
-            {
-                final String msg = NLS.bind( Resources.presetNotDefined, id );
-                throw new IllegalArgumentException( msg );
-            }
-            
-            return preset;
-        }
-    }
-    
-    public IPreset definePreset( final String name,
-                                 final Set<IProjectFacetVersion> facets )
-    {
-        return definePreset( name, null, facets );
-    }
-
-    public IPreset definePreset( final String name,
-                                 final String description,
-                                 final Set<IProjectFacetVersion> facets )
-    {
-       initializePresets();
-       
-       final IPreset preset = definePreset( name, description, facets, true );
-
-       final IFacetedProjectFrameworkEvent event 
-           = new FacetedProjectFrameworkEvent( IFacetedProjectFrameworkEvent.Type.PRESET_ADDED );
-       
-       this.frameworkListenerRegistry.notifyListeners( event );
-       
-       return preset;
-    }
-    
-    private IPreset definePreset( final String name,
-                                  final String description,
-                                  final Set<IProjectFacetVersion> facets,
-                                  final boolean save )
-    {
-        synchronized( this.presets )
-        {
-            String id;
-            int i = 0;
-            
-            do
-            {
-                id = ".usr." + i; //$NON-NLS-1$
-                i++;
-            }
-            while( this.presets.containsKey( id ) );
-            
-            final UserPreset preset 
-                = new UserPreset( id, name, description == null ? "" : description,  //$NON-NLS-1$
-                                  facets );
-            
-            this.presets.add( id, preset );
-            
-            if( save )
-            {
-                saveUserPresets();
-            }
-            
-            return preset;
-        }
-    }
-    
-    public boolean deletePreset( final IPreset preset )
-    {
-        boolean deleted;
-        
-        synchronized( this.presets )
-        {
-            initializePresets();
-            
-            if( preset.getType() != IPreset.Type.USER_DEFINED )
-            {
-                return false;
-            }
-            
-            deleted = this.presets.delete( preset.getId() );
-            
-            if( deleted )
-            {
-                saveUserPresets();
-            }
-        }
-
-        if( deleted )
-        {
-            final IFacetedProjectFrameworkEvent event 
-                = new FacetedProjectFrameworkEvent( IFacetedProjectFrameworkEvent.Type.PRESET_REMOVED );
-            
-            this.frameworkListenerRegistry.notifyListeners( event );
-        }
-        
-        return deleted;
-    }
-    
-    private void initializePresets()
-    {
-        synchronized( this.presets )
-        {
-            if( ! this.presetsInitialized )
-            {
-                for( IPreset preset : PresetsExtensionPoint.getPresets() )
-                {
-                    this.presets.add( preset.getId(), preset );
-                }
-                
-                readUserPresets();
-                
-                this.presetsInitialized = true;
-            }
-        }
-    }
-    
-    private void saveUserPresets()
-    {
-        try
-        {
-            final Preferences root = getUserPresetsPreferences();
-            
-            final String[] children = root.childrenNames();
-            
-            for( int i = 0; i < children.length; i++ )
-            {
-                root.node( children[ i ] ).removeNode();
-            }
-            
-            for( IPreset preset : this.presets )
-            {
-                if( preset.getType() == IPreset.Type.USER_DEFINED )
-                {
-                    final Preferences pnode = root.node( preset.getId() );
-                    pnode.put( EL_LABEL, preset.getLabel() );
-                    pnode.put( EL_DESCRIPTION, preset.getDescription() );
-                    
-                    int counter = 1;
-                    
-                    for( IProjectFacetVersion fv : preset.getProjectFacets() )
-                    {
-                        final Preferences fnode = pnode.node( String.valueOf( counter ) );
-                        
-                        fnode.put( ATTR_ID, fv.getProjectFacet().getId() );
-                        fnode.put( ATTR_VERSION, fv.getVersionString() );
-                        
-                        counter++;
-                    }
-                }
-            }
-        
-            root.flush();
-        }
-        catch( BackingStoreException e )
-        {
-            FacetCorePlugin.log( e );
-        }
-    }
-    
-    private void readUserPresets()
-    {
-        try
-        {
-            final Preferences root = getUserPresetsPreferences();
-            final String[] pkeys = root.childrenNames();
-            
-            for( int i = 0; i < pkeys.length; i++ )
-            {
-                final Preferences pnode = root.node( pkeys[ i ] );
-                final String label = pnode.get( EL_LABEL, null );
-                
-                if( label == null )
-                {
-                    break;
-                }
-
-                String description = pnode.get( EL_DESCRIPTION, null );
-                
-                if( description == null )
-                {
-                    description = ""; //$NON-NLS-1$
-                }
-                
-                final String[] fkeys = pnode.childrenNames();
-                Set<IProjectFacetVersion> facets = new HashSet<IProjectFacetVersion>();
-                
-                for( int j = 0; j < fkeys.length; j++ )
-                {
-                    final Preferences fnode = pnode.node( fkeys[ j ] );
-                    final String id = fnode.get( ATTR_ID, null );
-                    final String version = fnode.get( ATTR_VERSION, null );
-                    
-                    if( id == null || version == null )
-                    {
-                        facets = null;
-                        break;
-                    }
-                    
-                    if( isProjectFacetDefined( id ) )
-                    {
-                        final IProjectFacet f = getProjectFacet( id );
-                        
-                        if( f.hasVersion( version ) )
-                        {
-                            facets.add( f.getVersion( version ) );
-                        }
-                        else
-                        {
-                            facets = null;
-                            break;
-                        }
-                    }
-                    else
-                    {
-                        facets = null;
-                        break;
-                    }
-                }
-
-                if( facets != null )
-                {
-                    definePreset( label, description, facets, false );
-                }
-            }
-        }
-        catch( BackingStoreException e )
-        {
-            FacetCorePlugin.log( e );
-        }
-    }
-    
-    private static Preferences getUserPresetsPreferences()
-    {
-        final InstanceScope scope = new InstanceScope();
-        
-        final IEclipsePreferences pluginRoot 
-            = scope.getNode( FacetCorePlugin.PLUGIN_ID );
-        
-        return pluginRoot.node( "user.presets" ); //$NON-NLS-1$
-    }
-    
-    public Set<IFacetedProjectTemplate> getTemplates()
-    {
-        return FacetedProjectTemplatesExtensionPoint.getTemplates();
-    }
-    
-    public boolean isTemplateDefined( final String id )
-    {
-        return ( FacetedProjectTemplatesExtensionPoint.getTemplate( id ) != null );
-    }
-    
-    public IFacetedProjectTemplate getTemplate( final String id )
-    {
-        final IFacetedProjectTemplate template 
-            = FacetedProjectTemplatesExtensionPoint.getTemplate( id );
-        
-        if( template == null )
-        {
-            final String msg = NLS.bind( Resources.templateNotDefined, id );
-            throw new IllegalArgumentException( msg );
-        }
-        
-        return template;
-    }
-    
-    public Set<IGroup> getGroups()
-    {
-        return this.groups.getUnmodifiable();
-    }
-    
-    public boolean isGroupDefined( final String id )
-    {
-        return this.groups.containsKey( id );
-    }
-    
-    public IGroup getGroup( final String id )
-    {
-        final IGroup group = this.groups.get( id );
-        
-        if( group == null )
-        {
-            final String msg = NLS.bind( Resources.groupNotDefined, id );
-            throw new IllegalArgumentException( msg );
-        }
-        
-        return group;
-    }
-    
-    public Set<IFacetedProject> getFacetedProjects()
-    
-        throws CoreException
-        
-    {
-        return getFacetedProjects( null, null );
-    }
-
-    public Set<IFacetedProject> getFacetedProjects( final IProjectFacet f )
-    
-        throws CoreException
-        
-    {
-        return getFacetedProjects( f, null );
-    }
-
-    public Set<IFacetedProject> getFacetedProjects( final IProjectFacetVersion fv )
-    
-        throws CoreException
-        
-    {
-        return getFacetedProjects( null, fv );
-    }
-
-    private Set<IFacetedProject> getFacetedProjects( final IProjectFacet f,
-                                                     final IProjectFacetVersion fv )
-    
-        throws CoreException
-        
-    {
-        final IProject[] all 
-            = ResourcesPlugin.getWorkspace().getRoot().getProjects();
-        
-        final Set<IFacetedProject> result = new HashSet<IFacetedProject>();
-        
-        for( int i = 0; i < all.length; i++ )
-        {
-            final IProject proj = all[ i ];
-            final IFacetedProject fproj = create( proj );
-            
-            if( fproj != null )
-            {
-                if( ( f != null && ! fproj.hasProjectFacet( f ) ) ||
-                    ( fv != null && ! fproj.hasProjectFacet( fv ) ) )
-                {
-                    continue;
-                }
-                else
-                {
-                    result.add( fproj );
-                }
-            }
-        }
-        
-        return result;
-    }
-    
-    public IFacetedProjectWorkingCopy createNewProject()
-    {
-        return new FacetedProjectWorkingCopy( null );
-    }
-
-    public IFacetedProject create( final IProject project )
-    
-        throws CoreException
-        
-    {
-        if( project.isAccessible() &&
-            project.isNatureEnabled( FacetedProjectNature.NATURE_ID ) )
-        {
-            FacetedProject fproj = null;
-            
-            synchronized( this.projects )
-            {
-                fproj = this.projects.get( project.getName() );
-                
-                if( fproj == null )
-                {
-                    fproj = new FacetedProject( project );
-                    this.projects.put( project.getName(), fproj );
-                }
-            }
-
-            fproj.refresh();
-            
-            return fproj;
-        }
-
-        return null;
-    }
-
-    public IFacetedProject create( final IProject project,
-                                   final boolean convertIfNecessary,
-                                   final IProgressMonitor monitor)
-    
-        throws CoreException
-        
-    {
-        if( monitor != null )
-        {
-            monitor.beginTask( "", 1 ); //$NON-NLS-1$
-        }
-        
-        try
-        {
-            if( project.isAccessible() &&
-                ! project.isNatureEnabled( FacetedProjectNature.NATURE_ID ) && 
-                convertIfNecessary )
-            {
-                final IProjectDescription description = project.getDescription();
-                final String[] prevNatures = description.getNatureIds();
-                final String[] newNatures = new String[ prevNatures.length + 1 ];
-                System.arraycopy( prevNatures, 0, newNatures, 0, prevNatures.length );
-                newNatures[ prevNatures.length ] = FacetedProjectNature.NATURE_ID;
-                description.setNatureIds( newNatures );
-                
-                validateEdit( project.getFile( FILE_DOT_PROJECT ) );
-                
-                project.setDescription( description, submon( monitor, 1 ) );
-            }
-            
-            return create( project );
-        }
-        finally
-        {
-            if( monitor != null )
-            {
-                monitor.done();
-            }
-        }
-    }
-    
-    public IFacetedProject create( final String name,
-                                   final IPath location,
-                                   final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        if( monitor != null )
-        {
-            monitor.beginTask( "", 2 ); //$NON-NLS-1$
-        }
-        
-        try
-        {
-            final IWorkspace ws = ResourcesPlugin.getWorkspace();
-            final IProject project = ws.getRoot().getProject( name );
-            
-            final IProjectDescription desc
-                = ws.newProjectDescription( name );
-    
-            desc.setLocation( location );
-                    
-            project.create( desc, submon( monitor, 1 ) );
-            project.open( submon( monitor, 1 ) );
-            
-            // This is odd, but apparently nature's configure() method will only
-            // be called if the setDescription() method is used. It will not be
-            // called if nature is added to the project description prior to
-            // calling IProject.create() method.
-            
-            desc.setNatureIds( new String[] { FacetedProjectNature.NATURE_ID } );
-            project.setDescription( desc, null );
-            
-            return create( project );
-        }
-        finally
-        {
-            if( monitor != null )
-            {
-                monitor.done();
-            }
-        }
-    }
-    
-    public void addListener( final IFacetedProjectListener listener,
-                             final IFacetedProjectEvent.Type... types )
-    {
-        this.projectListenerRegistry.addListener( listener, types );
-    }
-    
-    public void addListener( final IFacetedProjectFrameworkListener listener,
-                             final IFacetedProjectFrameworkEvent.Type... types )
-    {
-        this.frameworkListenerRegistry.addListener( listener, types );
-    }
-    
-    public void removeListener( final IFacetedProjectListener listener )
-    {
-        this.projectListenerRegistry.removeListener( listener );
-    }
-    
-    public void removeListener( final IFacetedProjectFrameworkListener listener )
-    {
-        this.frameworkListenerRegistry.removeListener( listener );
-    }
-    
-    ProjectListenerRegistry getProjectListenerRegistry()
-    {
-        return this.projectListenerRegistry;
-    }
-    
-    public IStatus check( final Set<IProjectFacetVersion> base,
-                          final Set<Action> actions )
-    {
-        MultiStatus result = Constraint.createMultiStatus();
-        
-        // Verify that all of the actions are supported.
-        
-        for( Action action : actions )
-        {
-            if( ! action.getProjectFacetVersion().supports( base, action.getType() ) )
-            {
-                final ValidationProblem.Type ptype;
-                
-                if( action.getType() == Action.Type.INSTALL )
-                {
-                    ptype = ValidationProblem.Type.INSTALL_NOT_SUPPORTED;
-                }
-                else if( action.getType() == Action.Type.UNINSTALL )
-                {
-                    ptype = ValidationProblem.Type.UNINSTALL_NOT_SUPPORTED;
-                }
-                else if( action.getType() == Action.Type.VERSION_CHANGE )
-                {
-                    ptype = ValidationProblem.Type.VERSION_CHANGE_NOT_SUPPORTED;
-                }
-                else
-                {
-                    throw new IllegalStateException();
-                }
-                
-                final IProjectFacetVersion fv = action.getProjectFacetVersion();
-                
-                final ValidationProblem vp
-                    = new ValidationProblem( ptype, 
-                                             fv.getProjectFacet().getLabel(),
-                                             fv.getVersionString() );
-                
-                result.add( vp );
-            }
-        }
-        
-        // Multiple actions on the same facet are not supported in the same
-        // batch. The only exception is an uninstall of a previosly-installed
-        // version followed by an install of a new version.
-        
-        final Map<IProjectFacet,Set<Action>> facetToActionsMap 
-            = new HashMap<IProjectFacet,Set<Action>>();
-        
-        for( Action action : actions )
-        {
-            final IProjectFacet f = action.getProjectFacetVersion().getProjectFacet();
-            Set<Action> group = facetToActionsMap.get( f );
-            
-            if( group == null )
-            {
-                group = new HashSet<Action>();
-                facetToActionsMap.put( f, group );
-            }
-            
-            group.add( action );
-        }
-        
-        for( Set<Action> group : facetToActionsMap.values() )
-        {
-            if( group.size() > 1 )
-            {
-                boolean bad = true;
-                
-                if( group.size() == 2 )
-                {
-                    Action install = null;
-                    Action uninstall = null;
-                    
-                    for( Action action : group )
-                    {
-                        if( action.getType() == Action.Type.INSTALL )
-                        {
-                            install = action;
-                        }
-                        else if( action.getType() == Action.Type.UNINSTALL )
-                        {
-                            uninstall = action;
-                        }
-                        else
-                        {
-                            break;
-                        }
-                    }
-                    
-                    if( install != null && uninstall != null )
-                    {
-                        if( base.contains( uninstall.getProjectFacetVersion() ) )
-                        {
-                            bad = false;
-                        }
-                    }
-                }
-                
-                if( bad )
-                {
-                    final ValidationProblem.Type ptype 
-                        = ValidationProblem.Type.MULTIPLE_ACTIONS_NOT_SUPPORTED;
-                    
-                    result.add( new ValidationProblem( ptype ) );
-                    
-                    break;
-                }
-            }
-        }
-        
-        // Check for attempts to uninstall or change version of facets that
-        // haven't been installed. Also check for attempts to install a facet
-        // that's already installed.
-        
-        for( Action action : actions )
-        {
-            final IProjectFacetVersion fv = action.getProjectFacetVersion();
-            final IProjectFacet f = fv.getProjectFacet();
-
-            ValidationProblem.Type ptype = null;
-            
-            if( action.getType() == Action.Type.UNINSTALL )
-            {
-                if( ! base.contains( fv ) )
-                {
-                    ptype = ValidationProblem.Type.CANNOT_UNINSTALL;
-                }
-            }
-            else
-            {
-                IProjectFacetVersion existing = null;
-                
-                for( IProjectFacetVersion temp : base )
-                {
-                    if( temp.getProjectFacet() == f )
-                    {
-                        existing = temp;
-                        break;
-                    }
-                }
-                
-                if( action.getType() == Action.Type.VERSION_CHANGE && existing == null )
-                {
-                    ptype = ValidationProblem.Type.CANNOT_CHANGE_VERSION;
-                }
-                else if( action.getType() == Action.Type.INSTALL && existing != null )
-                {
-                    ptype = ValidationProblem.Type.FACET_ALREADY_INSTALLED;
-                }
-            }
-            
-            if( ptype != null )
-            {
-                result.add( new ValidationProblem( ptype, f.getLabel(),
-                                                   fv.getVersionString() ) );
-            }
-        }
-        
-        // Abort at this point if there are any validation problems.
-        
-        if( ! result.isOK() )
-        {
-            return result;
-        }
-        
-        // Apply all the uninstall actions.
-        
-        final Set<IProjectFacetVersion> all = new HashSet<IProjectFacetVersion>( base );
-        
-        for( Action action : actions )
-        {
-            if( action.getType() == Action.Type.UNINSTALL )
-            {
-                apply( all, action );
-            }
-        }
-        
-        // Apply all the install and version change actions.
-        
-        for( Action action : actions )
-        {
-            if( action.getType() != Action.Type.UNINSTALL )
-            {
-                apply( all, action );
-            }
-        }
-        
-        // Check the constrains on all of the facets.
-        
-        for( IProjectFacetVersion fv : all )
-        {
-            final IConstraint constraint = fv.getConstraint();
-            
-            if( constraint != null )
-            {
-                final IStatus st = constraint.check( all );
-                
-                if( ! st.isOK() )
-                {
-                    result.addAll( st );
-                }
-            }
-        }
-        
-        // Eliminate symmetric conflicts problem entries.
-        
-        final Set<IStatus> problems = new HashSet<IStatus>();
-        IStatus[] children = result.getChildren();
-        
-        for( IStatus child : children )
-        {
-            problems.add( child );
-        }
-        
-        final Set<IStatus> toremove = new HashSet<IStatus>();
-
-        for( IStatus problem : problems )
-        {
-            if( ! toremove.contains( problem ) )
-            {
-                final ValidationProblem valprob = (ValidationProblem) problem;
-                
-                if( valprob.getType() == ValidationProblem.Type.CONFLICTS )
-                {
-                    final Object[] p = valprob.getParameters();
-                    
-                    final ValidationProblem reverse
-                        = new ValidationProblem( ValidationProblem.Type.CONFLICTS,
-                                                 new Object[] { p[ 1 ], p[ 0 ] } );
-                    
-                    toremove.add( reverse );
-                }
-            }
-        }
-        
-        if( toremove.size() > 0 )
-        {
-            problems.removeAll( toremove );
-            children = problems.toArray( new IStatus[ problems.size() ] );
-            result = Constraint.createMultiStatus( children );
-        }
-        
-        // Return the problems to the caller.
-        
-        return result;
-    }
-    
-    public void sort( final Set<IProjectFacetVersion> base,
-                      final List<Action> actions )
-    {
-        final int count = actions.size();
-        
-        if( count == 0 )
-        {
-            return;
-        }
-        
-        // Before sorting, check that the constraints can be met. Otherwise
-        // the sort algorithm will not terminate.
-        
-        final IStatus st = check( base, new HashSet<Action>( actions ) );
-        
-        if( ! st.isOK() )
-        {
-            FacetCorePlugin.log( st );
-            return;
-        }
-        
-        // Initialize tracing.
-        
-        List<Action> unsorted = null;
-        int steps = 0;
-        
-        if( FacetCorePlugin.isTracingActionSorting() )
-        {
-            unsorted = new ArrayList<Action>( actions );
-        }
-        
-        // Step 1 : Pre-sort all uninstall actions to the front of the list. 
-        //          Within that order, sort actions based on facet id. The
-        //          secondary sort assures a stable sort order among actions on
-        //          unrelated facets.
-        
-        final Comparator<Action> comp = new Comparator<Action>()
-        {
-            public int compare( final Action a1, 
-                                final Action a2 )
-            {
-                int res = compare( a1.getType(), a2.getType() );
-                
-                if( res == 0 )
-                {
-                    final String fid1 
-                        = a1.getProjectFacetVersion().getProjectFacet().getId();
-                    
-                    final String fid2 
-                        = a2.getProjectFacetVersion().getProjectFacet().getId();
-                    
-                    res = fid1.compareTo( fid2 );
-                }
-                
-                return res;
-            }
-            
-            private int compare( final Action.Type t1,
-                                 final Action.Type t2 )
-            {
-                if( t1 == t2 )
-                {
-                    return 0;
-                }
-                else if( t1 == Action.Type.UNINSTALL )
-                {
-                    return -1;
-                }
-                else if( t2 == Action.Type.UNINSTALL )
-                {
-                    return 1;
-                }
-                else
-                {
-                    return 0;
-                }
-            }
-        };
-        
-        Collections.sort( actions, comp );
-        
-        // Step 2 : Sort based on the constraints.
-        
-        final Set<IProjectFacetVersion> fnl = new HashSet<IProjectFacetVersion>( base );
-        
-        for( Action action : actions )
-        {
-            apply( fnl, action );
-        }
-        
-        boolean makeAnotherPass = true;
-        
-        while( makeAnotherPass )
-        {
-            makeAnotherPass = false;
-            
-            Set<IProjectFacetVersion> state = new HashSet<IProjectFacetVersion>( base );
-            
-            for( int i = 0; i < count; )
-            {
-                final Action action = actions.get( i );
-                final Action.Type type = action.getType();
-                final IProjectFacetVersion fv = action.getProjectFacetVersion();
-                final IConstraint constraint = fv.getConstraint();
-                
-                if( type == Action.Type.UNINSTALL )
-                {
-                    if( ! constraint.check( state, true ).isOK() &&
-                        constraint.check( base, true ).isOK() )
-                    {
-                        moveToFront( actions, i );
-                        makeAnotherPass = true;
-                        steps++;
-                        break;
-                    }
-                    else
-                    {
-                        apply( state, action );
-                        i++;
-                    }
-                }
-                else
-                {
-                    if( constraint.check( state ).isOK() &&
-                        ! ( ! constraint.check( state, true ).isOK() &&
-                            constraint.check( fnl, true ).isOK() ) )
-                    {
-                        apply( state, action );
-                        i++;
-                    }
-                    else
-                    {
-                        moveToEnd( actions, i );
-                        steps++;
-                    }
-                }
-            }
-        }
-        
-        // Output tracing information.
-        
-        if( FacetCorePlugin.isTracingActionSorting() )
-        {
-            final String text
-                = Resources.bind( Resources.tracingActionSorting,
-                                  toString( base ), toString( unsorted ),
-                                  toString( actions ), String.valueOf( steps ) );
-            
-            System.out.println( text );
-        }
-    }
-    
-    static void apply( final Set<IProjectFacetVersion> facets,
-                       final Action action )
-    {
-        final Action.Type type = action.getType();
-        final IProjectFacetVersion fv = action.getProjectFacetVersion();
-        
-        if( type == Action.Type.INSTALL )
-        {
-            facets.add( fv );
-        }
-        else if( type == Action.Type.UNINSTALL )
-        {
-            facets.remove( fv );
-        }
-        else if( type == Action.Type.VERSION_CHANGE )
-        {
-            for( IProjectFacetVersion x : facets )
-            {
-                if( x.getProjectFacet() == fv.getProjectFacet() )
-                {
-                    facets.remove( x );
-                    break;
-                }
-            }
-            
-            facets.add( fv );
-        }
-    }
-    
-    public synchronized Preferences getPreferences( final IProjectFacet facet )
-    
-        throws BackingStoreException
-        
-    {
-        ProjectFacetPreferencesGroup group = null;
-        
-        if( this.globalPreferencesGroup != null )
-        {
-            group = this.globalPreferencesGroup.get();
-        }
-        
-        if( group == null )
-        {
-            group = new ProjectFacetPreferencesGroup( null );
-            this.globalPreferencesGroup = new WeakReference<ProjectFacetPreferencesGroup>( group );
-        }
-        
-        return group.getPreferences( facet );
-    }
-    
-    public synchronized Preferences getPreferences( final IProjectFacet facet,
-                                                    final IFacetedProject project )
-    
-        throws BackingStoreException
-        
-    {
-        final String pjname = project.getProject().getName();
-        ProjectFacetPreferencesGroup group = null;
-        WeakReference<ProjectFacetPreferencesGroup> ref = this.projectPreferencesGroups.get( pjname );
-        
-        if( ref != null )
-        {
-            group = ref.get();
-        }
-        
-        if( group == null )
-        {
-            group = new ProjectFacetPreferencesGroup( project );
-            ref = new WeakReference<ProjectFacetPreferencesGroup>( group );
-            this.projectPreferencesGroups.put( pjname, ref );
-        }
-        
-        return group.getPreferences( facet );
-    }
-    
-    private static IProgressMonitor submon( final IProgressMonitor monitor,
-                                            final int ticks )
-    {
-        if( monitor == null )
-        {
-            return null;
-        }
-        else
-        {
-            return new SubProgressMonitor( monitor, ticks );
-        }
-    }
-    
-    private static void moveToFront( final List<Action> actions,
-                                     final int index )
-    {
-        final Action action = actions.get( index );
-        
-        for( int i = index; i > 0; i-- )
-        {
-            actions.set( i, actions.get( i - 1 ) );
-        }
-        
-        actions.set( 0, action );
-    }
-    
-    private static void moveToEnd( final List<Action> actions,
-                                   final int index )
-    {
-        final Action action = actions.get( index );
-        
-        for( int i = index + 1, n = actions.size(); i < n; i++ )
-        {
-            actions.set( i - 1, actions.get( i ) );
-        }
-        
-        actions.set( actions.size() - 1, action );
-    }
-    
-    private void readMetadata()
-    {
-        final IExtensionRegistry registry = Platform.getExtensionRegistry();
-        
-        final IExtensionPoint point 
-            = registry.getExtensionPoint( FacetCorePlugin.PLUGIN_ID, 
-                                          EXTENSION_ID );
-        
-        if( point == null )
-        {
-            throw new RuntimeException( "Extension point not found!" ); //$NON-NLS-1$
-        }
-        
-        final List<IConfigurationElement> cfgels = new ArrayList<IConfigurationElement>();
-        
-        for( IExtension extension : point.getExtensions() )
-        {
-            for( IConfigurationElement cfgel : extension.getConfigurationElements() )
-            {
-                cfgels.add( cfgel );
-            }
-        }
-        
-        for( IConfigurationElement config : cfgels )
-        {
-            if( config.getName().equals( EL_CATEGORY ) )
-            {
-                try
-                {
-                    readCategory( config );
-                }
-                catch( InvalidExtensionException e )
-                {
-                    // Continue. The problem has been reported in the log.
-                }
-            }
-        }
-        
-        for( IConfigurationElement config : cfgels )
-        {
-            if( config.getName().equals( EL_PROJECT_FACET ) )
-            {
-                try
-                {
-                    readProjectFacet( config );
-                }
-                catch( InvalidExtensionException e )
-                {
-                    // Continue. The problem has been reported in the log.
-                }
-            }
-        }
-        
-        final Map<ProjectFacetVersion,IConfigurationElement> fvToConstraint 
-            = new HashMap<ProjectFacetVersion,IConfigurationElement>();
-        
-        final Map<ProjectFacetVersion,List<IConfigurationElement>> fvToActions 
-            = new HashMap<ProjectFacetVersion,List<IConfigurationElement>>();
-        
-        for( IConfigurationElement config : cfgels )
-        {
-            if( config.getName().equals( EL_PROJECT_FACET_VERSION ) )
-            {
-                readProjectFacetVersion( config, fvToConstraint, fvToActions );
-            }
-        }
-        
-        calculateVersionComparisonTables( fvToConstraint, fvToActions );
-        
-        for( Map.Entry<ProjectFacetVersion,IConfigurationElement> x : fvToConstraint.entrySet() )
-        {
-            readConstraint( x.getValue(), x.getKey() );
-        }
-        
-        for( Map.Entry<ProjectFacetVersion,List<IConfigurationElement>> x : fvToActions.entrySet() )
-        {
-            final ProjectFacetVersion fv = x.getKey();
-            final List<IConfigurationElement> actions = x.getValue();
-            
-            for( IConfigurationElement config : actions )
-            {
-                readAction( config, (ProjectFacet) fv.getProjectFacet(), fv.getVersionString() );
-            }
-        }
-
-        for( IConfigurationElement config : cfgels )
-        {
-            if( config.getName().equals( EL_ACTION ) )
-            {
-                readAction( config );
-            }
-            else if( config.getName().equals( EL_EVENT_HANDLER ) )
-            {
-                readEventHandler( config );
-            }
-        }
-        
-        for( IConfigurationElement config : cfgels )
-        {
-            if( config.getName().equals( EL_PROJECT_FACET ) )
-            {
-                readDefaultVersionInfo( config );
-            }
-        }
-        
-        for( IConfigurationElement config : cfgels )
-        {
-            if( config.getName().equals( EL_GROUP ) )
-            {
-                try
-                {
-                    readGroup( config );
-                }
-                catch( InvalidExtensionException e )
-                {
-                    // Continue. The problem has been reported in the log.
-                }
-            }
-        }
-    }
-    
-    private void readCategory( final IConfigurationElement config )
-    
-        throws InvalidExtensionException
-        
-    {
-        final Category category = new Category();
-        category.setId( findRequiredAttribute( config, ATTR_ID ) );
-        category.setPluginId( config.getContributor().getName() );
-
-        final IConfigurationElement elLabel = findOptionalElement( config, EL_LABEL );
-        category.setLabel( getElementValue( elLabel, category.getId() ) );
-        
-        final IConfigurationElement elDesc = findOptionalElement( config, EL_DESCRIPTION );
-        category.setDescription( getElementValue( elDesc, DEFAULT_DESCRIPTION ) );
-        
-        this.categories.add( category.getId(), category );
-    }
-    
-    private void readProjectFacet( final IConfigurationElement config )
-    
-        throws InvalidExtensionException
-        
-    {
-        final ProjectFacet f = new ProjectFacet();
-        f.setId( findRequiredAttribute( config, ATTR_ID ) );
-        f.setPluginId( config.getContributor().getName() );
-        
-        final IConfigurationElement elLabel = findOptionalElement( config, EL_LABEL );
-        f.setLabel( getElementValue( elLabel, f.getId() ) );
-        
-        final IConfigurationElement elDesc = findOptionalElement( config, EL_DESCRIPTION );
-        f.setDescription( getElementValue( elDesc, DEFAULT_DESCRIPTION ) );
-
-        final IConfigurationElement elComp = findOptionalElement( config, EL_VERSION_COMPARATOR );
-        
-        if( elComp != null )
-        {
-            f.setVersionComparator( findRequiredAttribute( elComp, ATTR_CLASS ) );
-        }
-        
-        final IConfigurationElement[] children = config.getChildren();
-        
-        for( int i = 0; i < children.length; i++ )
-        {
-            final IConfigurationElement child = children[ i ];
-            final String childName = child.getName();
-            
-            if( childName.equals( EL_PROPERTY ) )
-            {
-                final String name = child.getAttribute( ATTR_NAME );
-    
-                if( name == null )
-                {
-                    reportMissingAttribute( child, ATTR_NAME );
-                    continue;
-                }
-    
-                final String value = child.getAttribute( ATTR_VALUE );
-                
-                if( value == null )
-                {
-                    reportMissingAttribute( child, ATTR_VALUE );
-                    continue;
-                }
-                
-                Object parsedValue = value;
-                
-                if( name.equals( IProjectFacet.PROP_HIDE_VERSION ) )
-                {
-                    parsedValue = Boolean.parseBoolean( value );
-                }
-
-                f.setProperty( name, parsedValue );
-            }
-        }
-        
-        String catname = null;
-        
-        final IConfigurationElement elMember = findOptionalElement( config, EL_MEMBER );
-        
-        if( elMember != null )
-        {
-            catname = findRequiredAttribute( elMember, ATTR_CATEGORY );
-        }
-        
-        // ## DEPRECATED : 2.0 ##
-        {
-            final IConfigurationElement elCategory = findOptionalElement( config, EL_CATEGORY );
-            
-            if( elCategory != null )
-            {
-                catname = getElementValue( elCategory, null );
-            }
-        }
-        
-        if( catname != null )
-        {
-            if( isCategoryDefined( catname ) )
-            {
-                final Category category = (Category) getCategory( catname );
-                
-                f.setCategory( category );
-                category.addProjectFacet( f );
-            }
-            else
-            {
-                final String msg
-                    = NLS.bind( Resources.categoryNotDefined, catname ) +
-                      NLS.bind( Resources.usedInPlugin, config.getContributor().getName() );
-                
-                FacetCorePlugin.log( msg );
-            }
-        }
-        
-        this.facets.add( f.getId(), f );
-    }
-    
-    private void readProjectFacetVersion( final IConfigurationElement config,
-                                          final Map<ProjectFacetVersion,IConfigurationElement> fvToConstraint,
-                                          final Map<ProjectFacetVersion,List<IConfigurationElement>> fvToActions )
-    {
-        final String fid = config.getAttribute( ATTR_FACET );
-
-        if( fid == null )
-        {
-            reportMissingAttribute( config, ATTR_FACET );
-            return;
-        }
-        
-        final String ver = config.getAttribute( ATTR_VERSION );
-
-        if( ver == null )
-        {
-            reportMissingAttribute( config, ATTR_VERSION );
-            return;
-        }
-        
-        final ProjectFacet f = (ProjectFacet) this.facets.get( fid );
-        
-        if( f == null )
-        {
-            ProblemLog.reportMissingFacet( fid, config.getContributor().getName() );
-            return;
-        }
-        
-        final ProjectFacetVersion fv
-            = new ProjectFacetVersion();
-        
-        fv.setProjectFacet( f );
-        fv.setVersionString( ver );
-        fv.setPluginId( config.getContributor().getName() );
-        
-        final List<IConfigurationElement> actions = new ArrayList<IConfigurationElement>();
-        fvToActions.put( fv, actions );
-        
-        final IConfigurationElement[] children = config.getChildren();
-        
-        for( int i = 0; i < children.length; i++ )
-        {
-            final IConfigurationElement child = children[ i ];
-            final String childName = child.getName();
-            
-            if( childName.equals( EL_CONSTRAINT ) )
-            {
-                fvToConstraint.put( fv, child );
-            }
-            else if( childName.equals( EL_GROUP_MEMBER ) )
-            {
-                final String id = child.getAttribute( ATTR_ID );
-                
-                if( id == null )
-                {
-                    reportMissingAttribute( child, ATTR_ID );
-                    return;
-                }
-                
-                Group group = (Group) this.groups.get( id );
-                
-                if( group == null )
-                {
-                    group = new Group();
-                    group.setId( id );
-                    
-                    this.groups.add( id, group );
-                }
-                
-                group.addMember( fv );
-            }
-            else if( childName.equals( EL_ACTION ) )
-            {
-                actions.add( child );
-            }
-            else if( childName.equals( EL_PROPERTY ) )
-            {
-                final String name = child.getAttribute( ATTR_NAME );
-    
-                if( name == null )
-                {
-                    reportMissingAttribute( child, ATTR_NAME );
-                    continue;
-                }
-    
-                final String value = child.getAttribute( ATTR_VALUE );
-                
-                if( value == null )
-                {
-                    reportMissingAttribute( child, ATTR_VALUE );
-                    continue;
-                }
-                
-                fv.setProperty( name, value );
-            }
-        }
-        
-        f.addVersion( fv );
-
-        // This has to happen after facet version is registered.
-        
-        for( int i = 0; i < children.length; i++ )
-        {
-            final IConfigurationElement child = children[ i ];
-            final String childName = child.getName();
-            
-            if( childName.equals( EL_EVENT_HANDLER ) )
-            {
-                readEventHandler( child, f, ver );
-            }
-        }
-    }
-    
-    /**
-     * Pre-computes the tables that describe how versions of a facet compare
-     * to each other. This allows the IProjectFacetVersion.compareTo() operation,
-     * which is called rather frequently, to be reduced to a hash table lookup
-     * instead of having to do a parse and comparison of two version strings.
-     */
-    
-    private void calculateVersionComparisonTables( final Map<ProjectFacetVersion,IConfigurationElement> fvToConstraint,
-                                                   final Map<ProjectFacetVersion,List<IConfigurationElement>> fvToActions )
-    {
-        final List<IProjectFacet> badFacets = new ArrayList<IProjectFacet>();
-        
-        for( IProjectFacet f : this.facets )
-        {
-            try
-            {
-                final Comparator<String> comp = f.getVersionComparator();
-                
-                final List<IProjectFacetVersion> versions 
-                    = new ArrayList<IProjectFacetVersion>( f.getVersions() );
-                
-                final Map<IProjectFacetVersion,Map<IProjectFacetVersion,Integer>> compTables
-                    = new HashMap<IProjectFacetVersion,Map<IProjectFacetVersion,Integer>>();
-                
-                for( IProjectFacetVersion fv : versions )
-                {
-                    compTables.put( fv, new HashMap<IProjectFacetVersion,Integer>() );
-                }
-                
-                for( int i = 0, n = versions.size(); i < n; i++ )
-                {
-                    final IProjectFacetVersion iVer = versions.get( i );
-                    final String iVerStr = iVer.getVersionString();
-                    final Map<IProjectFacetVersion,Integer> iCompTable = compTables.get( iVer );
-                    
-                    for( int j = i + 1; j < n; j++ )
-                    {
-                        final IProjectFacetVersion jVer = versions.get( j );
-                        final String jVerStr = jVer.getVersionString();
-                        final Map<IProjectFacetVersion,Integer> jCompTable = compTables.get( jVer );
-                        
-                        final int result = comp.compare( iVerStr, jVerStr );
-                        
-                        iCompTable.put( jVer, new Integer( result ) );
-                        jCompTable.put( iVer, new Integer( result * -1 ) );
-                    }
-                }
-                
-                for( Map.Entry<IProjectFacetVersion,Map<IProjectFacetVersion,Integer>> entry
-                     : compTables.entrySet() )
-                {
-                    final ProjectFacetVersion fv = (ProjectFacetVersion) entry.getKey();
-                    fv.setComparisonTable( entry.getValue() );
-                }
-            }
-            catch( Exception e )
-            {
-                // The failure here is due to the problem loading the provided
-                // version comparator or due to the problem comparing the
-                // version string. In either case, we log the exception and
-                // remove all traces of this facet from the system to keep a
-                // faulty facet from dragging down the entire framework.
-                
-                FacetCorePlugin.log( e );
-                badFacets.add( f );
-            }
-        }
-        
-        for( IProjectFacet f : badFacets )
-        {
-            this.facets.remove( f );
-            
-            final Category category = (Category) f.getCategory();
-            
-            if( category != null )
-            {
-                category.removeProjectFacet( f );
-            }
-            
-            for( IProjectFacetVersion fv : f.getVersions() )
-            {
-                fvToConstraint.remove( fv );
-                fvToActions.remove( fv );
-            }
-        }
-    }
-    
-    private void readDefaultVersionInfo( final IConfigurationElement config )
-    {
-        final String id = config.getAttribute( ATTR_ID );
-
-        if( id == null || ! isProjectFacetDefined( id ) )
-        {
-            // The error should have already been reported, don't need to log
-            // this again.
-            
-            return;
-        }
-        
-        final ProjectFacet f = (ProjectFacet) getProjectFacet( id );
-        boolean defaultVersionSpecified = false;
-
-        final IConfigurationElement[] children = config.getChildren();
-        
-        for( int i = 0; i < children.length; i++ )
-        {
-            final IConfigurationElement child = children[ i ];
-            final String childName = child.getName();
-            
-            if( childName.equals( EL_DEFAULT_VERSION ) )
-            {
-                final String clname = child.getAttribute( ATTR_PROVIDER );
-                
-                if( clname != null )
-                {
-                    final IDefaultVersionProvider defaultVersionProvider
-                        = instantiate( f.getPluginId(), clname, IDefaultVersionProvider.class );
-
-                    if( defaultVersionProvider != null )
-                    {
-                        f.setDefaultVersionProvider( defaultVersionProvider );
-                        defaultVersionSpecified = true;
-                    }
-                }
-                else
-                {
-                    final String version = child.getAttribute( ATTR_VERSION );
-                    
-                    if( version != null )
-                    {
-                        if( f.hasVersion( version ) )
-                        {
-                            f.setDefaultVersion( f.getVersion( version ) );
-                            defaultVersionSpecified = true;
-                        }
-                        else
-                        {
-                            ProblemLog.reportMissingFacetVersion( f, version, config.getContributor().getName() );
-                        }
-                    }
-                    else
-                    {
-                        reportMissingAttribute( config, ATTR_VERSION );
-                    }
-                }
-            }
-        }
-        
-        if( ! defaultVersionSpecified )
-        {
-            try
-            {
-                f.setDefaultVersion( f.getLatestVersion() );
-            }
-            catch( Exception e )
-            {
-                FacetCorePlugin.log( e );
-            }
-        }
-    }
-    
-    private void readAction( final IConfigurationElement config )
-    {
-        final String fid = config.getAttribute( ATTR_FACET );
-
-        if( fid == null )
-        {
-            reportMissingAttribute( config, ATTR_FACET );
-            return;
-        }
-        
-        final ProjectFacet f = (ProjectFacet) this.facets.get( fid );
-        
-        if( f == null )
-        {
-            ProblemLog.reportMissingFacet( fid, config.getContributor().getName() );
-            return;
-        }
-        
-        String ver = config.getAttribute( ATTR_VERSION );
-
-        if( ver == null )
-        {
-            ver = IVersionExpr.WILDCARD_SYMBOL;
-        }
-        
-        readAction( config, f, ver );
-    }
-
-    private void readAction( final IConfigurationElement config,
-                             final ProjectFacet f,
-                             final String version )
-    {
-        final String pluginId = config.getContributor().getName();
-        final ActionDefinition def = new ActionDefinition();
-        
-        def.setPluginId( pluginId );
-        
-        final String type = config.getAttribute( ATTR_TYPE );
-        
-        if( type == null )
-        {
-            reportMissingAttribute( config, ATTR_TYPE );
-            return;
-        }
-        
-        // Backwards compatibility of deprecated functionality.
-        
-        if( type.equals( "runtime-changed" ) ) //$NON-NLS-1$
-        {
-            final String msg
-                = NLS.bind( Resources.deprecatedRuntimeChangedAction, pluginId );
-            
-            FacetCorePlugin.logWarning( msg, true );
-            
-            readEventHandler( config, f, version );
-            
-            return;
-        }
-        
-        // End of backwards compatibility code.
-        
-        def.setActionType( Action.Type.valueOf( type ) ); 
-
-        if( def.getActionType() == null )
-        {
-            final String msg
-                = NLS.bind( Resources.invalidActionType, type ) +
-                  NLS.bind( Resources.usedInPlugin, pluginId );
-            
-            FacetCorePlugin.log( msg );
-            
-            return;
-        }
-        
-        try
-        {
-            def.setVersionExpr( new VersionExpr<ProjectFacetVersion>( f, version, pluginId ) );
-        }
-        catch( CoreException e )
-        {
-            FacetCorePlugin.log( e );
-            return;
-        }
-
-        final IConfigurationElement[] children = config.getChildren();
-        
-        for( int i = 0; i < children.length; i++ )
-        {
-            final IConfigurationElement child = children[ i ];
-            final String childName = child.getName();
-            
-            if( childName.equals( EL_CONFIG_FACTORY ) )
-            {
-                final String clname = child.getAttribute( ATTR_CLASS );
-                
-                if( clname == null )
-                {
-                    reportMissingAttribute( child, ATTR_CLASS );
-                    return;
-                }
-                
-                def.setConfigFactoryClassName( clname );
-            }
-            else if( childName.equals( EL_DELEGATE ) )
-            {
-                final String clname = child.getAttribute( ATTR_CLASS );
-                
-                if( clname == null )
-                {
-                    reportMissingAttribute( config, ATTR_CLASS );
-                    return;
-                }
-                
-                def.setDelegateClassName( clname );
-            }
-            else if( childName.equals( EL_PROPERTY ) )
-            {
-                final String name = child.getAttribute( ATTR_NAME );
-
-                if( name == null )
-                {
-                    reportMissingAttribute( child, ATTR_NAME );
-                    return;
-                }
-
-                final String value = child.getAttribute( ATTR_VALUE );
-                
-                if( value == null )
-                {
-                    reportMissingAttribute( child, ATTR_VALUE );
-                    return;
-                }
-                
-                Object parsedValue = value;
-                
-                if( name.equals( IActionDefinition.PROP_FROM_VERSIONS ) )
-                {
-                    try
-                    {
-                        parsedValue = new VersionExpr<ProjectFacetVersion>( f, value, pluginId );
-                    }
-                    catch( CoreException e )
-                    {
-                        FacetCorePlugin.log( e );
-                        return;
-                    }
-                }
-
-                def.setProperty( name, parsedValue );
-            }
-        }
-        
-        String id = config.getAttribute( ATTR_ID );
-        
-        if( id == null )
-        {
-            final StringBuffer buf = new StringBuffer();
-            
-            buf.append( f.getId() );
-            buf.append( '#' );
-            buf.append( version );
-            buf.append( '#' );
-            buf.append( def.getActionType().name() );
-
-            for( Map.Entry<String,Object> entry : def.getProperties().entrySet() )
-            {
-                buf.append( '#' );
-                buf.append( entry.getKey() );
-                buf.append( '=' );
-                buf.append( entry.getValue().toString() );
-            }
-            
-            id = buf.toString();
-        }
-        
-        def.setId( id );
-        
-        if( isActionDefined( id ) )
-        {
-            final String msg
-                = NLS.bind( Resources.actionAlreadyDefined, id, pluginId );
-            
-            FacetCorePlugin.logError( msg );
-        }
-        else
-        {
-            this.actions.add( def.getId(), def );
-            f.addActionDefinition( def );
-        }
-    }
-    
-    private void readEventHandler( final IConfigurationElement config )
-    {
-        final String fid = config.getAttribute( ATTR_FACET );
-
-        if( fid == null )
-        {
-            reportMissingAttribute( config, ATTR_FACET );
-            return;
-        }
-        
-        final ProjectFacet f = (ProjectFacet) this.facets.get( fid );
-        
-        if( f == null )
-        {
-            ProblemLog.reportMissingFacet( fid, config.getContributor().getName() );
-            return;
-        }
-        
-        String ver = config.getAttribute( ATTR_VERSION );
-
-        if( ver == null )
-        {
-            ver = IVersionExpr.WILDCARD_SYMBOL;
-        }
-        
-        readEventHandler( config, f, ver );
-    }
-    
-    /**
-     * Support for a deprecated extension point.
-     */
-
-    private void readEventHandler( final IConfigurationElement config,
-                                   final ProjectFacet f,
-                                   final String version )
-    {
-        final String pluginId = config.getContributor().getName();
-        
-        final String type = config.getAttribute( ATTR_TYPE );
-        
-        if( type == null )
-        {
-            reportMissingAttribute( config, ATTR_TYPE );
-            return;
-        }
-        
-        final IFacetedProjectEvent.Type t;
-        
-        if( type.equals( "runtime-changed" ) || type.equals( "RUNTIME_CHANGED" )) //$NON-NLS-1$ //$NON-NLS-2$
-        {
-            t = IFacetedProjectEvent.Type.PRIMARY_RUNTIME_CHANGED;
-        }
-        else
-        {
-            t = IFacetedProjectEvent.Type.valueOf( type );
-        }
-        
-        if( t == null )
-        {
-            final String msg
-                = NLS.bind( Resources.invalidEventHandlerType, type ) +
-                  NLS.bind( Resources.usedInPlugin, pluginId );
-            
-            FacetCorePlugin.log( msg );
-            
-            return;
-        }
-        
-        final IVersionExpr vexpr;
-        
-        try
-        {
-            vexpr = new VersionExpr<ProjectFacetVersion>( f, version, pluginId );
-        }
-        catch( CoreException e )
-        {
-            FacetCorePlugin.log( e );
-            return;
-        }
-        
-        String delegateClassName = null;
-
-        final IConfigurationElement[] children = config.getChildren();
-        
-        for( int i = 0; i < children.length; i++ )
-        {
-            final IConfigurationElement child = children[ i ];
-            final String childName = child.getName();
-            
-            if( childName.equals( EL_DELEGATE ) )
-            {
-                final String clname = child.getAttribute( ATTR_CLASS );
-                
-                if( clname == null )
-                {
-                    reportMissingAttribute( config, ATTR_CLASS );
-                    return;
-                }
-                
-                delegateClassName = clname;
-            }
-        }
-        
-        if( delegateClassName == null )
-        {
-            reportMissingElement( config, EL_DELEGATE );
-            return;
-        }
-        
-        final LegacyEventHandlerAdapter adapter
-            = new LegacyEventHandlerAdapter( f, vexpr, pluginId, delegateClassName );
-        
-        addListener( adapter, t );
-    }
-    
-    private void readConstraint( final IConfigurationElement config,
-                                 final ProjectFacetVersion fv )
-    {
-        final ProblemLog.Policy problemLoggingPolicy 
-            = ProblemLog.Policy.createBasedOnIgnoreProblemsAttr( config );
-
-        final IConfigurationElement[] ops = config.getChildren();
-        final List<IConstraint> parsed = new ArrayList<IConstraint>();
-        
-        for( int j = 0; j < ops.length; j++ )
-        {
-            final IConstraint op = readConstraintHelper( ops[ j ], fv, problemLoggingPolicy );
-            
-            if( op != null )
-            {
-                parsed.add( op );
-            }
-        }
-        
-        if( parsed.size() == 1 )
-        {
-            fv.setConstraint( parsed.get( 0 ) );
-        }
-        else if( parsed.size() > 1 )
-        {
-            final IConstraint and 
-                = new Constraint( fv, IConstraint.Type.AND, 
-                                  parsed.toArray() );
-            
-            fv.setConstraint( and );
-        }
-    }
-    
-    private IConstraint readConstraintHelper( final IConfigurationElement root,
-                                              final ProjectFacetVersion fv,
-                                              final ProblemLog.Policy parentProblemLoggingPolicy )
-    {
-        final String pluginId = root.getContributor().getName();
-        
-        final ProblemLog.Policy localProblemLoggingPolicy 
-            = ProblemLog.Policy.createBasedOnIgnoreProblemsAttr( root, parentProblemLoggingPolicy );
-        
-        final IConstraint.Type type
-            = IConstraint.Type.valueOf( root.getName() );
-        
-        final Object[] operands;
-     
-        if( type == IConstraint.Type.AND ||
-            type == IConstraint.Type.OR )
-        {
-            final IConfigurationElement[] children = root.getChildren();
-            final List<Object> operandsList = new ArrayList<Object>( children.length );
-            
-            for( int i = 0; i < children.length; i++ )
-            {
-                final IConstraint operand 
-                    = readConstraintHelper( children[ i ], fv, localProblemLoggingPolicy );
-                
-                if( operand != null )
-                {
-                    operandsList.add( operand );
-                }
-                else
-                {
-                    if( type == IConstraint.Type.AND )
-                    {
-                        return null;
-                    }
-                }
-            }
-            
-            operands = operandsList.toArray();
-        }
-        else if( type == IConstraint.Type.REQUIRES ||
-                 type == IConstraint.Type.CONFLICTS )
-        {
-            final String gid = root.getAttribute( ATTR_GROUP );
-            final String fid = root.getAttribute( ATTR_FACET );
-            String vexprstr = root.getAttribute( ATTR_VERSION );
-            
-            final String softStr = root.getAttribute( ATTR_SOFT );
-            Boolean soft = Boolean.FALSE;
-            
-            if( softStr != null && softStr.equals( Boolean.TRUE.toString() ) )
-            {
-                soft = Boolean.TRUE;
-            }
-            
-            if( gid != null && ( fid != null || vexprstr != null ) )
-            {
-                final String template
-                    = type == IConstraint.Type.REQUIRES
-                      ? Resources.invalidRequiresConstraint
-                      : Resources.invalidConflictsConstraint;
-                
-                final String msg = NLS.bind( template, pluginId );
-                
-                FacetCorePlugin.logError( msg, true );
-                return null;
-            }
-            else if( gid != null )
-            {
-                if( ! isGroupDefined( gid ) )
-                {
-                    ProblemLog.reportMissingGroup( gid, pluginId, localProblemLoggingPolicy );
-                    return null;
-                }
-                
-                final IGroup group = getGroup( gid );
-                
-                if( type == IConstraint.Type.REQUIRES )
-                {
-                    operands = new Object[] { group, soft };
-                }
-                else
-                {
-                    operands = new Object[] { group };
-                }
-            }
-            else if( fid != null )
-            {
-                if( ! isProjectFacetDefined( fid ) )
-                {
-                    ProblemLog.reportMissingFacet( fid, pluginId, localProblemLoggingPolicy );
-                    return null;
-                }
-                
-                final IProjectFacet f = getProjectFacet( fid );
-
-                VersionExpr vexpr = null;
-                
-                try
-                {
-                    if( vexprstr == null || vexprstr.trim().length() == 0 )
-                    {
-                        vexprstr = IVersionExpr.WILDCARD_SYMBOL;
-                    }
-                    
-                    vexpr = new VersionExpr( f, vexprstr, pluginId );
-                }
-                catch( CoreException e )
-                {
-                    FacetCorePlugin.log( e );
-                    return null;
-                }
-                
-                if( type == IConstraint.Type.REQUIRES )
-                {
-                    operands = new Object[] { f, vexpr, soft };
-                }
-                else
-                {
-                    operands = new Object[] { f, vexpr };
-                }
-            }
-            else
-            {
-                final String msg
-                    = Resources.bind( Resources.missingOneOfTwoAttributes,
-                                      pluginId, root.getName(), ATTR_GROUP,
-                                      ATTR_FACET );
-                
-                FacetCorePlugin.logError( msg, true );
-                return null;
-            }
-        }
-        else
-        {
-            throw new IllegalStateException();
-        }
-        
-        return new Constraint( fv, type, operands );
-    }
-    
-    private void readGroup( final IConfigurationElement config )
-    
-        throws InvalidExtensionException
-        
-    {
-        final String id = findRequiredAttribute( config, ATTR_ID );
-        
-        if( ! isGroupDefined( id ) )
-        {
-            return;
-        }
-        
-        final Group group = (Group) getGroup( id );
-        
-        final IConfigurationElement elLabel = findOptionalElement( config, EL_LABEL );
-        group.setLabel( getElementValue( elLabel, group.getId() ) );
-        
-        final IConfigurationElement elDesc = findOptionalElement( config, EL_DESCRIPTION );
-        group.setDescription( getElementValue( elDesc, DEFAULT_DESCRIPTION ) );
-    }
-    
-    private static String toString( final Collection<? extends Object> collection )
-    {
-        final StringBuffer buf = new StringBuffer();
-        
-        for( Object obj : collection )
-        {
-            if( buf.length() > 0 )
-            {
-                buf.append( ", " ); //$NON-NLS-1$
-            }
-            
-            if( obj instanceof IProjectFacetVersion )
-            {
-                final IProjectFacetVersion fv = (IProjectFacetVersion) obj;
-                
-                buf.append( fv.getProjectFacet().getId() );
-                buf.append( ' ' );
-                buf.append( fv.getVersionString() );
-            }
-            else
-            {
-                buf.append( obj.toString() );
-            }
-        }
-        
-        return buf.toString();
-    }
-    
-    private final class ResourceChangeListener
-    
-        implements IResourceChangeListener
-        
-    {
-        public void register()
-        {
-            final IWorkspace ws = ResourcesPlugin.getWorkspace();
-            ws.addResourceChangeListener( this, IResourceChangeEvent.POST_CHANGE );
-        }
-        
-        public void resourceChanged( final IResourceChangeEvent event )
-        {
-            final IResourceDelta delta = event.getDelta();
-            
-            synchronized( FacetedProjectFrameworkImpl.this.projects )
-            {
-                for( IResourceDelta subdelta : delta.getAffectedChildren( IResourceDelta.REMOVED ) )
-                {
-                    final String pjname = subdelta.getFullPath().segment( 0 );
-                    
-                    final IFacetedProject fpj 
-                        = FacetedProjectFrameworkImpl.this.projects.remove( pjname );
-                    
-                    if( fpj != null )
-                    {
-                        try
-                        {
-                            ( (FacetedProject) fpj ).markDeleted();
-                        }
-                        catch( CoreException e )
-                        {
-                            FacetCorePlugin.log( e );
-                        }
-                    }
-                }
-                
-                for( FacetedProject fproj : FacetedProjectFrameworkImpl.this.projects.values() )
-                {
-                    final IResourceDelta subdelta = delta.findMember( fproj.f.getFullPath() );
-                    
-                    if( subdelta != null )
-                    {
-                        try
-                        {
-                            fproj.refresh();
-                        }
-                        catch( CoreException e )
-                        {
-                            FacetCorePlugin.log( e );
-                        }
-                    }
-                }
-            }
-        }
-    }
-
-    public static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String missingOneOfTwoAttributes;
-        public static String categoryNotDefined;
-        public static String facetNotDefined;
-        public static String facetVersionNotDefined;
-        public static String actionNotDefined;
-        public static String actionAlreadyDefined;
-        public static String groupNotDefined;
-        public static String presetNotDefined;
-        public static String templateNotDefined;
-        public static String usedInPlugin;
-        public static String invalidActionType;
-        public static String invalidEventHandlerType;
-        public static String invalidRequiresConstraint;
-        public static String invalidConflictsConstraint;
-        public static String deprecatedRuntimeChangedAction;
-        public static String tracingActionSorting;
-        public static String tracingFrameworkActivationStarting;
-        public static String tracingFrameworkActivationFinished;
-        
-        static
-        {
-            initializeMessages( FacetedProjectFrameworkImpl.class.getName(), 
-                                Resources.class );
-        }
-        
-        public static String bind( final String template,
-                                   final Object arg1,
-                                   final Object arg2,
-                                   final Object arg3 )
-        {
-            return NLS.bind( template, new Object[] { arg1, arg2, arg3 } );
-        }
-
-        public static String bind( final String template,
-                                   final Object arg1,
-                                   final Object arg2,
-                                   final Object arg3,
-                                   final Object arg4 )
-        {
-            return NLS.bind( template, new Object[] { arg1, arg2, arg3, arg4 } );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectFrameworkImpl.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectFrameworkImpl.properties
deleted file mode 100644
index d2007b2..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectFrameworkImpl.properties
+++ /dev/null
@@ -1,34 +0,0 @@
-missingOneOfTwoAttributes = Extension element <{1}> in plugin {0} requires either attribute {2} or attribute {3} to be specified.
-categoryNotDefined = Category {0} has not been defined.
-facetNotDefined = Project facet {0} has not been defined.
-facetVersionNotDefined = Version {1} of project facet {0} does not exist.
-actionNotDefined = Project facet action {0} has not been defined.
-actionAlreadyDefined = Attempt to redefine project facet action "{0}" in plugin {1}.
-groupNotDefined = Project facet group {0} has not been defined.
-presetNotDefined = Preset {0} has not been defined.
-templateNotDefined = Template {0} has not been defined.
-usedInPlugin = \ It is used in plugin {0}.
-invalidActionType = "{0}" is an invalid action type.
-invalidEventHandlerType = "{0}" is an invalid event handler type.
-invalidRequiresConstraint = The requires constraint can specify either a "group" attribute or a "facet" attribute and a "version" attribute. The problem was found in plugin {0}.
-invalidConflictsConstraint = The conflicts constraint can specify either a "group" attribute or a "facet" attribute and a "version" attribute. The problem was found in plugin {0}.
-
-deprecatedRuntimeChangedAction = \
-The project facet action "runtime-changed" has been deprecated. It is used in \
-plugin {0}. Similar functionality is available via the "RUNTIME_CHANGED" \
-event handler. See extension point org.eclipse.wst.common.project.facet.core.facets \
-for more information. 
-
-tracingActionSorting = \
-Finished sorting faceted project actions.\n\
-\  base = {0}\n\
-\  unsorted = {1}\n\
-\  sorted = {2}\n\
-\  steps = {3} 
-
-tracingFrameworkActivationStarting = \
-Activating Faceted Project Framework...\n\
-{0}
-
-tracingFrameworkActivationFinished = \
-Faceted Project Framework activated successfully in {0} ms.
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectNature.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectNature.java
deleted file mode 100644
index 2b3410d..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectNature.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import org.eclipse.core.resources.ICommand;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IProjectNature;
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class FacetedProjectNature
-
-    implements IProjectNature
-
-{
-    public static final String NATURE_ID 
-        = FacetCorePlugin.PLUGIN_ID + ".nature"; //$NON-NLS-1$
-    
-    private IProject project;
-    
-    public IProject getProject()
-    {
-        return this.project;
-    }
-    
-    public void setProject( final IProject project )
-    {
-        this.project = project;
-    }
-    
-    public void configure() 
-    
-        throws CoreException
-        
-    {
-        final IProjectDescription desc = this.project.getDescription();
-        
-        final ICommand[] existing = desc.getBuildSpec();
-        final ICommand[] cmds = new ICommand[ existing.length + 1 ];
-        
-        final ICommand newcmd = this.project.getDescription().newCommand();
-        newcmd.setBuilderName( FacetedProjectValidationBuilder.BUILDER_ID );
-        
-        cmds[ 0 ] = newcmd;
-        System.arraycopy( existing, 0, cmds, 1, existing.length );
-        
-        desc.setBuildSpec( cmds );
-        this.project.setDescription( desc, null );
-    }
-    
-    public void deconfigure() {}
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectPropertyTester.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectPropertyTester.java
deleted file mode 100644
index f2e95b6..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectPropertyTester.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import org.eclipse.core.expressions.PropertyTester;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.common.project.facet.core.FacetedProjectFramework;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class FacetedProjectPropertyTester
-
-    extends PropertyTester
-    
-{
-    public boolean test( final Object receiver, 
-                         final String property, 
-                         final Object[] args, 
-                         final Object value )
-    {
-        try
-        {
-            final String val = (String) value;
-            final int colon = val.indexOf( ':' );
-            
-            final String fid;
-            final String vexpr;
-            
-            if( colon == -1 || colon == val.length() - 1 )
-            {
-                fid = val;
-                vexpr = null;
-            }
-            else
-            {
-                fid = val.substring( 0, colon );
-                vexpr = val.substring( colon + 1 );
-            }
-            
-            if( receiver instanceof IResource )
-            {
-                final IProject pj = ( (IResource) receiver ).getProject();
-                
-                if( pj == null )
-                {
-                    return false;
-                }
-                
-                return FacetedProjectFramework.hasProjectFacet( pj, fid, vexpr );
-            }
-            else if( receiver instanceof IProjectFacetVersion )
-            {
-                final IProjectFacetVersion fv = (IProjectFacetVersion) receiver;
-                final IProjectFacet f = fv.getProjectFacet();
-                
-                return f.getId().equals( fid ) &&
-                       ( vexpr == null || f.getVersions( vexpr ).contains( fv ) );
-            }
-        }
-        catch( CoreException e )
-        {
-            FacetCorePlugin.log( e.getStatus() );
-        }
-            
-        return false;
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectTemplate.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectTemplate.java
deleted file mode 100644
index 5f5b30b..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectTemplate.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectTemplate;
-import org.eclipse.wst.common.project.facet.core.IPreset;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class FacetedProjectTemplate
-
-    implements IFacetedProjectTemplate
-    
-{
-    private String id;
-    private String label;
-    private final Set<IProjectFacet> fixed;
-    private final Set<IProjectFacet> fixedReadOnly;
-    private IPreset preset;
-    
-    FacetedProjectTemplate() 
-    {
-        this.fixed = new HashSet<IProjectFacet>();
-        this.fixedReadOnly = Collections.unmodifiableSet( this.fixed );
-    }
-    
-    public String getId()
-    {
-        return this.id;
-    }
-    
-    void setId( final String id )
-    {
-        this.id = id;
-    }
-
-    public String getLabel()
-    {
-        return this.label;
-    }
-    
-    void setLabel( final String label )
-    {
-        this.label = label;
-    }
-
-    public Set<IProjectFacet> getFixedProjectFacets()
-    {
-        return this.fixedReadOnly;
-    }
-    
-    void addFixedProjectFacet( final IProjectFacet facet )
-    {
-        this.fixed.add( facet );
-    }
-
-    public IPreset getInitialPreset()
-    {
-        return this.preset;
-    }
-    
-    void setInitialPreset( final IPreset preset )
-    {
-        this.preset = preset;
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectTemplatesExtensionPoint.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectTemplatesExtensionPoint.java
deleted file mode 100644
index 67b1df3..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectTemplatesExtensionPoint.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import static org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin.PLUGIN_ID;
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.findExtensions;
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.findOptionalElement;
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.findRequiredAttribute;
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.getElementValue;
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.getTopLevelElements;
-
-import java.util.Set;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectTemplate;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.common.project.facet.core.util.internal.IndexedSet;
-import org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.InvalidExtensionException;
-
-/**
- * Contains the logic for processing the <code>template</code> element of the <code>facets</code> 
- * extension point.
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class FacetedProjectTemplatesExtensionPoint
-{
-    public static final String EXTENSION_POINT_ID = "facets"; //$NON-NLS-1$
-    
-    private static final String ATTR_FACET = "facet"; //$NON-NLS-1$
-    private static final String ATTR_ID = "id"; //$NON-NLS-1$
-    private static final String EL_FIXED = "fixed"; //$NON-NLS-1$
-    private static final String EL_LABEL = "label"; //$NON-NLS-1$
-    private static final String EL_PRESET = "preset"; //$NON-NLS-1$
-    private static final String EL_TEMPLATE = "template"; //$NON-NLS-1$
-    
-    private static IndexedSet<String,IFacetedProjectTemplate> templates = null;
-    
-    public static Set<IFacetedProjectTemplate> getTemplates()
-    {
-        readExtensions();
-        return templates.getUnmodifiable();
-    }
-    
-    public static IFacetedProjectTemplate getTemplate( final String id )
-    {
-        readExtensions();
-        return templates.get( id );
-    }
-    
-    private static synchronized void readExtensions()
-    {
-        if( templates != null )
-        {
-            return;
-        }
-        
-        templates = new IndexedSet<String,IFacetedProjectTemplate>();        
-        
-        for( IConfigurationElement element 
-             : getTopLevelElements( findExtensions( PLUGIN_ID, EXTENSION_POINT_ID ) ) )
-        {
-            if( element.getName().equals( EL_TEMPLATE ) )
-            {
-                try
-                {
-                    readTemplate( element );
-                }
-                catch( InvalidExtensionException e )
-                {
-                    // Continue. The problem has been reported to the user via the log.
-                }
-            }
-        }
-    }
-
-    private static void readTemplate( final IConfigurationElement config )
-    
-        throws InvalidExtensionException
-        
-    {
-        final String pluginId = config.getContributor().getName();
-        
-        final FacetedProjectTemplate template = new FacetedProjectTemplate();
-        template.setId( findRequiredAttribute( config, ATTR_ID ) );
-        
-        final IConfigurationElement elLabel = findOptionalElement( config, EL_LABEL );
-        template.setLabel( getElementValue( elLabel, template.getId() ) );
-    
-        final IConfigurationElement[] children = config.getChildren();
-        
-        for( int i = 0; i < children.length; i++ )
-        {
-            final IConfigurationElement child = children[ i ];
-            final String childName = child.getName();
-            
-            if( childName.equals( EL_FIXED ) )
-            {
-                final String fid = findRequiredAttribute( child, ATTR_FACET );
-                
-                if( ! ProjectFacetsManager.isProjectFacetDefined( fid ) )
-                {
-                    ProblemLog.reportMissingFacet( fid, pluginId );
-                    return;
-                }
-                
-                template.addFixedProjectFacet( ProjectFacetsManager.getProjectFacet( fid ) );
-            }
-            else if( childName.equals( EL_PRESET ) )
-            {
-                final String pid = findRequiredAttribute( child, ATTR_ID );
-                
-                if( ! ProjectFacetsManager.isPresetDefined( pid ) )
-                {
-                    final String msg
-                        = Resources.bind( Resources.presetNotDefined, pid, pluginId );
-                    
-                    FacetCorePlugin.log( msg );
-                    
-                    return;
-                }
-                
-                template.setInitialPreset( ProjectFacetsManager.getPreset( pid ) );
-            }
-        }
-        
-        templates.add( template.getId(), template );
-    }
-    
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String presetNotDefined;
-        
-        static
-        {
-            initializeMessages( FacetedProjectTemplatesExtensionPoint.class.getName(), 
-                                Resources.class );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectTemplatesExtensionPoint.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectTemplatesExtensionPoint.properties
deleted file mode 100644
index bc8ba86..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectTemplatesExtensionPoint.properties
+++ /dev/null
@@ -1 +0,0 @@
-presetNotDefined = Preset {0} has not been defined. It is used in plugin {1}.
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectValidationBuilder.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectValidationBuilder.java
deleted file mode 100644
index ae747ef..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectValidationBuilder.java
+++ /dev/null
@@ -1,276 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import static org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin.PLUGIN_ID;
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.findExtensions;
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.getTopLevelElements;
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.instantiate;
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.reportMissingAttribute;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectValidator;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class FacetedProjectValidationBuilder
-
-    extends IncrementalProjectBuilder
-    
-{
-    public static final String BUILDER_ID
-        = FacetCorePlugin.PLUGIN_ID + ".builder"; //$NON-NLS-1$
-
-    private static final String EXTENSION_POINT_ID = "validators"; //$NON-NLS-1$
-    
-    private static final String EL_VALIDATOR = "validator"; //$NON-NLS-1$
-    private static final String EL_FACET = "facet"; //$NON-NLS-1$
-    private static final String ATTR_CLASS = "class"; //$NON-NLS-1$
-
-    private static final List<ValidatorDefinition> validators 
-        = new ArrayList<ValidatorDefinition>();
-    
-    static
-    {
-        readExtensions();
-    }
-    
-    protected IProject[] build( final int kind, 
-                                final Map args, 
-                                final IProgressMonitor monitor ) 
-    
-        throws CoreException
-        
-    {
-        if( monitor != null )
-        {
-            monitor.beginTask( Resources.taskDescription, 3 );
-        }
-        
-        try
-        {
-            final IProject proj = getProject();
-            final IFacetedProject fproj = ProjectFacetsManager.create( proj );
-            
-            // Delete existing problem markers.
-            
-            proj.deleteMarkers( IFacetedProjectValidator.BASE_MARKER_ID, true, 
-                                IResource.DEPTH_INFINITE );
-            
-            worked( monitor, 1 );
-            
-            // Perform basic validation.
-            
-            final IStatus st = fproj.validate( submon( monitor, 1 ) );
-            
-            if( ! st.isOK() )
-            {
-                final IStatus[] problems = st.getChildren();
-                
-                for( int i = 0; i < problems.length; i++ )
-                {
-                    final IStatus problem = problems[ i ];
-                    final int severity = problem.getSeverity();
-                    final String message = problem.getMessage();
-                    
-                    if( severity == IStatus.ERROR )
-                    {
-                        fproj.createErrorMarker( message );
-                    }
-                    else if( severity == IStatus.WARNING )
-                    {
-                        fproj.createWarningMarker( message );
-                    }
-                }
-            }
-            
-            // Call the registered validators.
-            
-            for( ValidatorDefinition def : validators )
-            {
-                if( monitor != null && monitor.isCanceled() )
-                {
-                    throw new OperationCanceledException();
-                }
-                
-                if( def.isApplicable( fproj.getProjectFacets() ) )
-                {
-                    final IFacetedProjectValidator validator = def.getValidator();
-                    
-                    if( validator != null )
-                    {
-                        validator.validate( fproj );
-                    }
-                }
-            }
-            
-            worked( monitor, 1 );
-            
-            return new IProject[0];
-        }
-        finally
-        {
-            if( monitor != null )
-            {
-                monitor.done();
-            }
-        }
-    }
-    
-    private static void readExtensions()
-    {
-        for( IConfigurationElement config 
-            : getTopLevelElements( findExtensions( PLUGIN_ID, EXTENSION_POINT_ID ) ) )
-        {
-            if( config.getName().equals( EL_VALIDATOR ) )
-            {
-                ValidatorDefinition def = new ValidatorDefinition();
-                def.plugin = config.getContributor().getName();
-                
-                def.className = config.getAttribute( ATTR_CLASS );
-
-                if( def.className == null )
-                {
-                    reportMissingAttribute( config, ATTR_CLASS );
-                    continue;
-                }
-                
-                final IConfigurationElement[] children = config.getChildren();
-                
-                for( int j = 0; j < children.length; j++ )
-                {
-                    final IConfigurationElement child = children[ j ];
-                    final String childName = child.getName();
-                    
-                    if( childName.equals( EL_FACET ) )
-                    {
-                        final ProjectFacetRef ref 
-                            = ProjectFacetRef.read( child );
-                        
-                        if( ref != null )
-                        {
-                            def.constraints.add( ref );
-                        }
-                        else
-                        {
-                            def = null;
-                            break;
-                        }
-                    }
-                }
-                
-                if( def != null )
-                {
-                    validators.add( def );
-                }
-            }
-        }
-    }
-    
-    private static SubProgressMonitor submon( final IProgressMonitor parent,
-                                              final int ticks )
-    {
-        if( parent == null )
-        {
-            return null;
-        }
-        else
-        {
-            return new SubProgressMonitor( parent, ticks );
-        }
-    }
-    
-    private static void worked( final IProgressMonitor monitor,
-                                final int ticks )
-    {
-        if( monitor != null )
-        {
-            monitor.worked( ticks );
-            
-            if( monitor.isCanceled() )
-            {
-                throw new OperationCanceledException();
-            }
-        }
-    }
-    
-    private static final class ValidatorDefinition
-    {
-        public String plugin;
-        public String className;
-        public IFacetedProjectValidator validator;
-        public final List<ProjectFacetRef> constraints = new ArrayList<ProjectFacetRef>();
-        
-        public boolean isApplicable( final Set<IProjectFacetVersion> facets )
-        
-            throws CoreException
-            
-        {
-            for( ProjectFacetRef ref : this.constraints )
-            {
-                if( ! ref.check( facets ) )
-                {
-                    return false;
-                }
-            }
-            
-            return true;
-        }
-        
-        public synchronized IFacetedProjectValidator getValidator()
-        
-            throws CoreException
-            
-        {
-            if( this.validator == null )
-            {
-                this.validator
-                    = instantiate( this.plugin, this.className, IFacetedProjectValidator.class );
-            }
-            
-            return this.validator;
-        }
-    }
-            
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String taskDescription;
-        
-        static
-        {
-            initializeMessages( FacetedProjectValidationBuilder.class.getName(), 
-                                Resources.class );
-        }
-    }
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectValidationBuilder.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectValidationBuilder.properties
deleted file mode 100644
index e759136..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectValidationBuilder.properties
+++ /dev/null
@@ -1 +0,0 @@
-taskDescription = Validating faceted project...
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectWorkingCopy.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectWorkingCopy.java
deleted file mode 100644
index ffcc0a6..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectWorkingCopy.java
+++ /dev/null
@@ -1,2141 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.SortedSet;
-import java.util.TreeSet;
-import java.util.concurrent.CopyOnWriteArrayList;
-import java.util.concurrent.CopyOnWriteArraySet;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdapterManager;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.SubMonitor;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.ActionConfig;
-import org.eclipse.wst.common.project.facet.core.DefaultConfigurationPresetFactory;
-import org.eclipse.wst.common.project.facet.core.FacetedProjectFramework;
-import org.eclipse.wst.common.project.facet.core.IActionConfig;
-import org.eclipse.wst.common.project.facet.core.IActionDefinition;
-import org.eclipse.wst.common.project.facet.core.IDynamicPreset;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectWorkingCopy;
-import org.eclipse.wst.common.project.facet.core.IListener;
-import org.eclipse.wst.common.project.facet.core.IPreset;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.MinimalConfigurationPresetFactory;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject.Action;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectEvent;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectFrameworkEvent;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectFrameworkListener;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener;
-import org.eclipse.wst.common.project.facet.core.events.IProjectFacetsChangedEvent;
-import org.eclipse.wst.common.project.facet.core.events.internal.FacetedProjectEvent;
-import org.eclipse.wst.common.project.facet.core.events.internal.ProjectFacetsChangedEvent;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-import org.eclipse.wst.common.project.facet.core.runtime.RuntimeManager;
-import org.eclipse.wst.common.project.facet.core.util.internal.IndexedSet;
-import org.eclipse.wst.common.project.facet.core.util.internal.MiscUtil;
-import org.eclipse.wst.common.project.facet.core.util.internal.StatusWrapper;
-
-/**
- * @since 3.0
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class FacetedProjectWorkingCopy
-
-    implements IFacetedProjectWorkingCopy
-    
-{
-    private static final SortedSet<IProjectFacetVersion> EMPTY_SORTED_FV_SET
-        = Collections.unmodifiableSortedSet( new TreeSet<IProjectFacetVersion>() );
-    
-    /**
-     * The object that's used internally for synchronizing access to the data structure.
-     */
-    
-    private Object lock;
-    
-    /**
-     * The name of the project in the scenario where the working copy is for a
-     * project that doesn't exist yet, <code>null</code> otherwise.
-     */
-    
-    private String projectName;
-    
-    /**
-     * The validation status of the project name. If the project name is acceptable, the status
-     * severity is going to be IStatus.OK.
-     */
-    
-    private IStatus projectNameValidation;
-    
-    /**
-     * The location of the project in the scenario where the working copy is for a
-     * project that doesn't exist yet, <code>null</code> otherwise.
-     */
-    
-    private IPath projectLocation;
-    private IFacetedProject project;
-    private Set<IProjectFacet> fixedFacets;
-    private IndexedSet<IProjectFacet,IProjectFacetVersion> facets;
-    private Map<IProjectFacet,SortedSet<IProjectFacetVersion>> availableFacets;
-    private IndexedSet<String,IPreset> availablePresets;
-    private String selectedPresetId;
-    private final Set<IRuntime> targetableRuntimes;
-    private final Set<IRuntime> targetedRuntimes;
-    private IRuntime primaryRuntime;
-    private Set<Action> actions;
-    private List<IStatus> problems;
-    private final List<Runnable> disposeTasks;
-    
-    /**
-     * Maps event types to the list of listeners registered for those events. The map is
-     * populated with empty listeners lists for all event types at initialization and is 
-     * not modified after that. The contained lists use copy-on-write behavior to guarantee 
-     * for safe iteration when notifying listeners.
-     */
-    
-    private final Map<IFacetedProjectEvent.Type,List<IFacetedProjectListener>> listeners;
-
-    /**
-     * Tracks whether or not event notification is currently suspended. This counter is
-     * incremented by the suspendEventNotification() method and decremented by the
-     * resumeEventNotification() method. Once the counter reaches zero, any queued events
-     * can be delivered.
-     */
-    
-    private int suspendEventNoticationCounter;
-    
-    /**
-     * Tracks the events that are queued while event notification is suspended.
-     */
-    
-    private final List<IFacetedProjectEvent> queuedEvents;
-    
-    public FacetedProjectWorkingCopy( final IFacetedProject project )
-    {
-        this.lock = new Object();
-        this.projectName = null;
-        this.projectNameValidation = Status.OK_STATUS;
-        this.projectLocation = null;
-        this.project = project;
-        this.actions = Collections.emptySet();
-        this.problems = Collections.emptyList();
-        this.fixedFacets = Collections.emptySet();
-        this.facets = new IndexedSet<IProjectFacet,IProjectFacetVersion>();
-        this.availableFacets = Collections.emptyMap();
-        this.availablePresets = new IndexedSet<String,IPreset>();
-        this.selectedPresetId = null;
-        this.targetableRuntimes = new CopyOnWriteArraySet<IRuntime>();
-        this.targetedRuntimes = new CopyOnWriteArraySet<IRuntime>();
-        this.primaryRuntime = null;
-        this.disposeTasks = new ArrayList<Runnable>();
-        
-        this.listeners = new HashMap<IFacetedProjectEvent.Type,List<IFacetedProjectListener>>();
-        
-        for( IFacetedProjectEvent.Type eventType : IFacetedProjectEvent.Type.values() )
-        {
-            this.listeners.put( eventType, new CopyOnWriteArrayList<IFacetedProjectListener>() );
-        }
-        
-        this.suspendEventNoticationCounter = 0;
-        this.queuedEvents = new ArrayList<IFacetedProjectEvent>();
-        
-        refreshAvailableFacets();
-        
-        if( this.project != null )
-        {
-            setFixedProjectFacets( this.project.getFixedProjectFacets() );
-        }
-
-        refreshAvailablePresets();
-        
-        if( this.project != null )
-        {
-            setProjectFacets( this.project.getProjectFacets() );
-        }
-        
-        refreshTargetableRuntimes();
-        
-        if( this.project != null )
-        {
-            setTargetedRuntimes( this.project.getTargetedRuntimes() );
-            setPrimaryRuntime( this.project.getPrimaryRuntime() );
-        }
-        
-        // Listen for changes to registered runtimes.
-        
-        final Job runtimesRefreshJob = new Job( Resources.refreshingAvailableRuntimesJobName )
-        {
-            protected IStatus run( final IProgressMonitor monitor )
-            {
-                // Suspending event notification to make sure that the internal list of
-                // targetable runtimes is updated before the AVAILABLE_RUNTIMES_CHANGED
-                // event is received by listeners.
-                
-                suspendEventNotification();
-                
-                try
-                {
-                    final IFacetedProjectEvent event
-                        = new FacetedProjectEvent( FacetedProjectWorkingCopy.this, 
-                                                   IFacetedProjectEvent.Type.AVAILABLE_RUNTIMES_CHANGED );
-                    
-                    notifyListeners( event );
-                    
-                    refreshTargetableRuntimes();
-                }
-                finally
-                {
-                    resumeEventNotification();
-                }
-                
-                return Status.OK_STATUS;
-            }
-        };
-
-        final IListener runtimeManagerListener = new IListener()
-        {
-            public void handle()
-            {
-                runtimesRefreshJob.schedule();
-            }
-        };
-        
-        RuntimeManager.addRuntimeListener( runtimeManagerListener );
-        
-        addDisposeTask
-        (
-            new Runnable()
-            {
-                public void run()
-                {
-                    RuntimeManager.removeRuntimeListener( runtimeManagerListener );
-                }
-            }
-        );
-        
-        // Listen for changes to registered presets.
-        
-        final IFacetedProjectFrameworkListener presetsListener = new IFacetedProjectFrameworkListener()
-        {
-            public void handleEvent( final IFacetedProjectFrameworkEvent event )
-            {
-                refreshAvailablePresets();
-            }
-        };
-        
-        FacetedProjectFramework.addListener( presetsListener, 
-                                             IFacetedProjectFrameworkEvent.Type.PRESET_ADDED, 
-                                             IFacetedProjectFrameworkEvent.Type.PRESET_REMOVED );
-        
-        addDisposeTask
-        (
-            new Runnable()
-            {
-                public void run()
-                {
-                    FacetedProjectFramework.removeListener( presetsListener );
-                }
-            }
-        );
-        
-        // Listen for changes to the project.
-        
-        final IFacetedProjectListener targetedRuntimesChangedListener = new IFacetedProjectListener()
-        {
-            public void handleEvent( final IFacetedProjectEvent event )
-            {
-                performValidation();
-            }
-        };
-        
-        addListener( targetedRuntimesChangedListener,
-                     IFacetedProjectEvent.Type.TARGETED_RUNTIMES_CHANGED );
-    }
-    
-    public String getProjectName()
-    {
-        synchronized( this.lock )
-        {
-            if( this.project != null )
-            {
-                return this.project.getProject().getName();
-            }
-            else
-            {
-                return this.projectName;
-            }
-        }
-    }
-    
-    public void setProjectName( final String name )
-    {
-        suspendEventNotification();
-        
-        try
-        {
-            synchronized( this.lock )
-            {
-                if( this.project == null )
-                {
-                    if( ! equals( this.projectName, name ) )
-                    {
-                        this.projectName = name;
-                        
-                        for( Action action : getProjectFacetActions() )
-                        {
-                            final Object config = action.getConfig();
-                            
-                            if( config != null )
-                            {
-                                IActionConfig c = null;
-                                
-                                if( config instanceof IActionConfig )
-                                {
-                                    c = (IActionConfig) config;
-                                }
-                                else
-                                {
-                                    final IAdapterManager m = Platform.getAdapterManager();
-                                    final String t = IActionConfig.class.getName();
-                                    c = (IActionConfig) m.loadAdapter( config, t );
-                                }
-                                
-                                if( c != null )
-                                {
-                                    c.setProjectName( this.projectName );
-                                }
-                            }
-                        }
-                        
-                        notifyListeners( new FacetedProjectEvent( this, IFacetedProjectEvent.Type.PROJECT_NAME_CHANGED ) );
-                        
-                        final IWorkspace ws = ResourcesPlugin.getWorkspace();
-                        
-                        final IStatus validateNameResult    
-                            = ws.validateName( this.projectName, IResource.PROJECT );
-                        
-                        if( ! this.projectNameValidation.equals( validateNameResult ) )
-                        {
-                            this.projectNameValidation = validateNameResult;
-                            notifyListeners( new FacetedProjectEvent( this, IFacetedProjectEvent.Type.VALIDATION_PROBLEMS_CHANGED ) );
-                        }
-                    }
-                }
-                else
-                {
-                    throw new IllegalArgumentException(); // TODO: needs message
-                }
-            }
-        }
-        finally
-        {
-            resumeEventNotification();
-        }
-    }
-    
-    public IPath getProjectLocation()
-    {
-        synchronized( this.lock )
-        {
-            if( this.project != null )
-            {
-                return this.project.getProject().getLocation();
-            }
-            else
-            {
-                return this.projectLocation;
-            }
-        }
-    }
-    
-    public void setProjectLocation( final IPath location )
-    {
-        suspendEventNotification();
-        
-        try
-        {
-            synchronized( this.lock )
-            {
-                if( this.project == null )
-                {
-                    this.projectLocation = location;
-                }
-                else
-                {
-                    throw new IllegalArgumentException(); // TODO: needs message
-                }
-            }
-        }
-        finally
-        {
-            resumeEventNotification();
-        }
-    }
-    
-    public IProject getProject()
-    {
-        final IFacetedProject fproj = getFacetedProject();
-        
-        if( fproj == null )
-        {
-            return null;
-        }
-        else
-        {
-            return fproj.getProject();
-        }
-    }
-    
-    public IFacetedProject getFacetedProject()
-    {
-        synchronized( this.lock )
-        {
-            if( this.project == null && this.projectName != null )
-            {
-                final IProject pj = ResourcesPlugin.getWorkspace().getRoot().getProject( this.projectName );
-                
-                if( pj != null && pj.exists() )
-                {
-                    try
-                    {
-                        this.project = ProjectFacetsManager.create( pj );
-                    }
-                    catch( CoreException e )
-                    {
-                        FacetCorePlugin.log( e );
-                    }
-                }
-            }
-            
-            return this.project;
-        }
-    }
-    
-    public Set<IProjectFacet> getFixedProjectFacets()
-    {
-        synchronized( this.lock )
-        {
-            return this.fixedFacets;
-        }
-    }
-    
-    public boolean isFixedProjectFacet( final IProjectFacet facet )
-    {
-        synchronized( this.lock )
-        {
-            return this.fixedFacets.contains( facet );
-        }
-    }
-    
-    public void setFixedProjectFacets( final Set<IProjectFacet> fixed )
-    {
-        suspendEventNotification();
-        
-        try
-        {
-            synchronized( this.lock )
-            {
-                if( this.fixedFacets.equals( fixed ) )
-                {
-                    return;
-                }
-                
-                final Set<IProjectFacetVersion> newFacets 
-                    = new HashSet<IProjectFacetVersion>( getProjectFacets() );
-                
-                for( IProjectFacet f : fixed )
-                {
-                    final IProjectFacetVersion currentVersion = getProjectFacetVersion( f );
-                    
-                    if( currentVersion == null && f.getVersions().size() > 0 )
-                    {
-                        IProjectFacetVersion fv = f.getDefaultVersion();
-                        
-                        if( ! isFacetAvailable( fv ) )
-                        {
-                            fv = getHighestAvailableVersion( f );
-                        }
-                        
-                        newFacets.add( fv );
-                    }
-                }
-                
-                setProjectFacets( newFacets );
-                
-                this.fixedFacets 
-                    = Collections.unmodifiableSet( new HashSet<IProjectFacet>( fixed ) );
-                
-                notifyListeners( new FacetedProjectEvent( this, IFacetedProjectEvent.Type.FIXED_FACETS_CHANGED ) );
-                
-                refreshAvailableFacets();
-                refreshAvailablePresets();
-            }
-        }
-        finally
-        {
-            resumeEventNotification();
-        }
-    }
-    
-    public Map<IProjectFacet,SortedSet<IProjectFacetVersion>> getAvailableFacets()
-    {
-        synchronized( this.lock )
-        {
-            return this.availableFacets;
-        }
-    }
-    
-    public boolean isFacetAvailable( final IProjectFacet f )
-    {
-        synchronized( this.lock )
-        {
-            return this.availableFacets.containsKey( f );
-        }
-    }
-    
-    public boolean isFacetAvailable( final IProjectFacetVersion fv )
-    {
-        synchronized( this.lock )
-        {
-            final Set<IProjectFacetVersion> versions 
-                = this.availableFacets.get( fv.getProjectFacet() );
-            
-            return ( versions != null && versions.contains( fv ) );
-        }
-    }
-    
-    public SortedSet<IProjectFacetVersion> getAvailableVersions( final IProjectFacet f )
-    {
-        synchronized( this.lock )
-        {
-            SortedSet<IProjectFacetVersion> availableVersions = this.availableFacets.get( f );
-            
-            if( availableVersions == null )
-            {
-                availableVersions = EMPTY_SORTED_FV_SET;
-            }
-            
-            return availableVersions;
-        }
-    }
-    
-    public IProjectFacetVersion getHighestAvailableVersion( final IProjectFacet f )
-    {
-        synchronized( this.lock )
-        {
-            IProjectFacetVersion version = null;
-            
-            for( IProjectFacetVersion fv : this.availableFacets.get( f ) )
-            {
-                if( version == null )
-                {
-                    version = fv;
-                }
-                else
-                {
-                    if( fv.compareTo( version ) > 0 )
-                    {
-                        version = fv;
-                    }
-                }
-            }
-            
-            return version;
-        }
-    }
-    
-    private void refreshAvailableFacets()
-    {
-        final Map<IProjectFacet,SortedSet<IProjectFacetVersion>> newAvailableFacets
-            = new HashMap<IProjectFacet,SortedSet<IProjectFacetVersion>>();
-        
-        final Set<IRuntime> targetedRuntimes = getTargetedRuntimes();
-        
-        for( IProjectFacet f : ProjectFacetsManager.getProjectFacets() )
-        {
-            SortedSet<IProjectFacetVersion> versions = null;
-            
-            for( IProjectFacetVersion fv : f.getVersions() )
-            {
-                boolean available = true;
-                
-                if( this.project == null || ! this.project.hasProjectFacet( fv ) )
-                {
-                    for( IRuntime r : targetedRuntimes )
-                    {
-                        if( ! r.supports( fv ) )
-                        {
-                            available = false;
-                            break;
-                        }
-                    }
-                    
-                    if( available && ! fv.isValidFor( this.fixedFacets ) )
-                    {
-                        available = false;
-                    }
-                }
-                
-                if( available )
-                {
-                    if( versions == null )
-                    {
-                        versions = new TreeSet<IProjectFacetVersion>();
-                        newAvailableFacets.put( f, versions );
-                    }
-                    
-                    versions.add( fv );
-                }
-            }
-        }
-        
-        // Add any unknown facets that are referenced by the project.
-        
-        if( this.project != null )
-        {
-            for( IProjectFacetVersion fv : this.project.getProjectFacets() )
-            {
-                if( fv.getPluginId() == null )
-                {
-                    final IProjectFacet f = fv.getProjectFacet();
-                    SortedSet<IProjectFacetVersion> versions = newAvailableFacets.get( f );
-                    
-                    if( versions == null )
-                    {
-                        versions = new TreeSet<IProjectFacetVersion>();
-                        newAvailableFacets.put( f, versions );
-                    }
-                    
-                    versions.add( fv );
-                }
-            }
-        }
-        
-        // If there is a change to the available facets, apply the change and notify the listeners.
-        
-        if( ! this.availableFacets.equals( newAvailableFacets ) )
-        {
-            for( Map.Entry<IProjectFacet,SortedSet<IProjectFacetVersion>> entry 
-                 : newAvailableFacets.entrySet() )
-            {
-                entry.setValue( Collections.unmodifiableSortedSet( entry.getValue() ) );
-            }
-            
-            this.availableFacets = Collections.unmodifiableMap( newAvailableFacets );
-            
-            notifyListeners( new FacetedProjectEvent( this, IFacetedProjectEvent.Type.AVAILABLE_FACETS_CHANGED ) );
-
-            refreshAvailablePresets();
-        }
-    }
-    
-    public Set<IProjectFacetVersion> getProjectFacets()
-    {
-        synchronized( this.lock )
-        {
-            return this.facets.getUnmodifiable();
-        }
-    }
-    
-    public IProjectFacetVersion getProjectFacetVersion( final IProjectFacet f )
-    {
-        synchronized( this.lock )
-        {
-            return this.facets.get( f );
-        }
-    }
-    
-    public boolean hasProjectFacet( final IProjectFacet f )
-    {
-        synchronized( this.lock )
-        {
-            return this.facets.containsKey( f );
-        }
-    }
-
-    public boolean hasProjectFacet( final IProjectFacetVersion fv )
-    {
-        synchronized( this.lock )
-        {
-            return this.facets.contains( fv );
-        }
-    }
-    
-    public void setProjectFacets( final Set<IProjectFacetVersion> facets )
-    {
-        suspendEventNotification();
-        
-        try
-        {
-            synchronized( this.lock )
-            {
-                final IndexedSet<IProjectFacet,IProjectFacetVersion> newProjectFacets
-                    = new IndexedSet<IProjectFacet,IProjectFacetVersion>();
-                
-                for( IProjectFacetVersion fv : facets )
-                {
-                    newProjectFacets.add( fv.getProjectFacet(), fv );
-                }
-                
-                final Set<IProjectFacetVersion> addedFacets = new HashSet<IProjectFacetVersion>();
-                final Set<IProjectFacetVersion> removedFacets = new HashSet<IProjectFacetVersion>();
-                final Set<IProjectFacetVersion> changedVersions = new HashSet<IProjectFacetVersion>();
-                
-                for( IProjectFacetVersion fv : newProjectFacets )
-                {
-                    final IProjectFacetVersion currentFacetVersion 
-                        = this.facets.get( fv.getProjectFacet() );
-                    
-                    if( currentFacetVersion == null )
-                    {
-                        addedFacets.add( fv );
-                    }
-                    else
-                    {
-                        if( ! fv.equals( currentFacetVersion ) )
-                        {
-                            changedVersions.add( fv );
-                        }
-                    }
-                }
-                
-                for( IProjectFacetVersion fv : this.facets )
-                {
-                    if( ! newProjectFacets.containsKey( fv.getProjectFacet() ) )
-                    {
-                        removedFacets.add( fv );
-                    }
-                }
-                
-                if( addedFacets.isEmpty() && removedFacets.isEmpty() && changedVersions.isEmpty() )
-                {
-                    return;
-                }
-                
-                setSelectedPreset( null );
-                
-                this.facets = newProjectFacets;
-                
-                final IProjectFacetsChangedEvent event
-                    = new ProjectFacetsChangedEvent( this, addedFacets, removedFacets,
-                                                     changedVersions );
-                
-                notifyListeners( event );
-                
-                notifyListeners( new FacetedProjectEvent( this, IFacetedProjectEvent.Type.PROJECT_MODIFIED ) );
-                
-                refreshTargetableRuntimes();
-                refreshProjectFacetActions();
-                refreshAvailablePresets();
-                performValidation();
-            }
-        }
-        finally
-        {
-            resumeEventNotification();
-        }
-    }
-    
-    public void addProjectFacet( final IProjectFacetVersion fv )
-    {
-        suspendEventNotification();
-        
-        try
-        {
-            synchronized( this.lock )
-            {
-                final IProjectFacetVersion existingVersion 
-                    = this.facets.get( fv.getProjectFacet() );
-                
-                if( existingVersion == null )
-                {
-                    final Set<IProjectFacetVersion> newProjectFacets 
-                        = new HashSet<IProjectFacetVersion>();
-        
-                    newProjectFacets.addAll( this.facets );
-                    newProjectFacets.add( fv );
-                    
-                    setProjectFacets( newProjectFacets );
-                }
-                else if( existingVersion == fv )
-                {
-                    return;
-                }
-                else
-                {
-                    // TODO: needs exception msg
-                    throw new IllegalArgumentException();
-                }
-            }
-        }
-        finally
-        {
-            resumeEventNotification();
-        }
-    }
-    
-    public void removeProjectFacet( final IProjectFacet f )
-    {
-        suspendEventNotification();
-        
-        try
-        {
-            synchronized( this.lock )
-            {
-                final IProjectFacetVersion fv = getProjectFacetVersion( f );
-                
-                if( fv != null )
-                {
-                    removeProjectFacet( getProjectFacetVersion( f ) );
-                }
-            }
-        }
-        finally
-        {
-            resumeEventNotification();
-        }
-    }
-    
-    public void removeProjectFacet( final IProjectFacetVersion fv )
-    {
-        suspendEventNotification();
-        
-        try
-        {
-            synchronized( this.lock )
-            {
-                final IProjectFacetVersion existingVersion 
-                    = this.facets.get( fv.getProjectFacet() );
-                
-                if( existingVersion == null )
-                {
-                    return;
-                }
-                else if( existingVersion == fv )
-                {
-                    final Set<IProjectFacetVersion> newProjectFacets 
-                        = new HashSet<IProjectFacetVersion>();
-        
-                    newProjectFacets.addAll( this.facets );
-                    newProjectFacets.remove( fv );
-                    
-                    setProjectFacets( newProjectFacets );
-                }
-                else
-                {
-                    // TODO: needs exception msg
-                    throw new IllegalArgumentException();
-                }
-            }
-        }
-        finally
-        {
-            resumeEventNotification();
-        }
-    }
-
-    public void changeProjectFacetVersion( final IProjectFacetVersion fv )
-    {
-        suspendEventNotification();
-        
-        try
-        {
-            synchronized( this.lock )
-            {
-                final IProjectFacetVersion existingVersion 
-                    = this.facets.get( fv.getProjectFacet() );
-                
-                if( existingVersion == null )
-                {
-                    // TODO: needs exception msg
-                    throw new IllegalArgumentException();
-                }
-                else if( existingVersion == fv )
-                {
-                    return;
-                }
-                else
-                {
-                    final Set<IProjectFacetVersion> newProjectFacets 
-                        = new HashSet<IProjectFacetVersion>();
-        
-                    newProjectFacets.addAll( this.facets );
-                    newProjectFacets.remove( existingVersion );
-                    newProjectFacets.add( fv );
-                    
-                    setProjectFacets( newProjectFacets );
-                }
-            }
-        }
-        finally
-        {
-            resumeEventNotification();
-        }
-    }
-    
-    private Set<IProjectFacetVersion> getBaseProjectFacets()
-    {
-        if( this.project == null )
-        {
-            return Collections.emptySet();
-        }
-        else
-        {
-            return this.project.getProjectFacets();
-        }
-    }
-    
-    public Set<IPreset> getAvailablePresets()
-    {
-        synchronized( this.lock )
-        {
-            return this.availablePresets.getUnmodifiable();
-        }
-    }
-    
-    private void refreshAvailablePresets()
-    {
-        suspendEventNotification();
-        
-        try
-        {
-            synchronized( this.lock )
-            {
-                final IndexedSet<String,IPreset> newAvailablePresets = new IndexedSet<String,IPreset>();
-                Map<String,Object> context = null;
-                
-                for( IPreset preset : ProjectFacetsManager.getPresets() )
-                {
-                    if( preset.getType() == IPreset.Type.DYNAMIC )
-                    {
-                        if( context == null )
-                        {
-                            context = new HashMap<String,Object>();
-                            
-                            context.put( IDynamicPreset.CONTEXT_KEY_FACETED_PROJECT, this );
-                            
-                            context.put( IDynamicPreset.CONTEXT_KEY_PRIMARY_RUNTIME, 
-                                         this.primaryRuntime );
-                            
-                            context.put( IDynamicPreset.CONTEXT_KEY_FIXED_FACETS, 
-                                         this.fixedFacets );
-                        }
-                        
-                        preset = ( (IDynamicPreset) preset ).resolve( context );
-                        
-                        if( preset == null )
-                        {
-                            continue;
-                        }
-                    }
-                    
-                    final Set<IProjectFacetVersion> facets = preset.getProjectFacets();
-                    boolean applicable = true;
-                    
-                    // All of the facets listed in the preset and their versions must be available.
-                    
-                    for( IProjectFacetVersion fv : facets )
-                    {
-                        if( ! isFacetAvailable( fv ) )
-                        {
-                            applicable = false;
-                            break;
-                        }
-                    }
-                    
-                    // The preset must span across all of the fixed facets.
-                    
-                    for( IProjectFacet f : this.fixedFacets )
-                    {
-                        boolean found = false;
-        
-                        for( IProjectFacetVersion fv : f.getVersions() )
-                        {
-                            if( facets.contains( fv ) )
-                            {
-                                found = true;
-                                break;
-                            }
-                        }
-                        
-                        if( ! found )
-                        {
-                            applicable = false;
-                            break;
-                        }
-                    }
-                    
-                    if( applicable )
-                    {
-                        newAvailablePresets.add( preset.getId(), preset );
-                    }
-                }
-                
-                if( ! this.availablePresets.equals( newAvailablePresets ) )
-                {
-                    this.availablePresets = newAvailablePresets;
-                    notifyListeners( new FacetedProjectEvent( this, IFacetedProjectEvent.Type.AVAILABLE_PRESETS_CHANGED ) );
-                    
-                    if( this.selectedPresetId != null && 
-                        ! this.availablePresets.containsKey( this.selectedPresetId ) )
-                    {
-                        setSelectedPreset( null );
-                    }
-                }
-            }
-        }
-        finally
-        {
-            resumeEventNotification();
-        }
-    }
-    
-    public IPreset getSelectedPreset()
-    {
-        synchronized( this.lock )
-        {
-            if( this.selectedPresetId != null )
-            {
-                return this.availablePresets.get( this.selectedPresetId );
-            }
-            else
-            {
-                return null;
-            }
-        }
-    }
-    
-    public void setSelectedPreset( final String presetId )
-    {
-        suspendEventNotification();
-        
-        try
-        {
-            synchronized( this.lock )
-            {
-                if( presetId != null && ! this.availablePresets.containsKey( presetId ) )
-                {
-                    final String msg = Resources.bind( Resources.couldNotSelectPreset, presetId ); 
-                    throw new IllegalArgumentException( msg );
-                }
-                
-                final IPreset preset = this.availablePresets.get( presetId );
-                
-                if( ! equals( this.selectedPresetId, presetId ) || 
-                    ( preset != null && ! equals( preset.getProjectFacets(), getProjectFacets() ) ) )
-                {
-                    if( preset != null )
-                    {
-                        // The following line keeps the setProjectFacets() call that comes next from 
-                        // causing a preset change event from being generated. We want to avoid 
-                        // firing two preset change events while presenting a consistent data 
-                        // structure (the old preset isn't selected) to event handlers listening on 
-                        // the facet change event.
-                        
-                        this.selectedPresetId = null;
-                        
-                        setProjectFacets( preset.getProjectFacets() );
-                    }
-                    
-                    this.selectedPresetId = presetId;
-                    
-                    notifyListeners( new FacetedProjectEvent( this, IFacetedProjectEvent.Type.SELECTED_PRESET_CHANGED ) );
-                }
-            }
-        }
-        finally
-        {
-            resumeEventNotification();
-        }
-    }
-    
-    public IPreset getDefaultConfiguration()
-    {
-        synchronized( this.lock )
-        {
-            return this.availablePresets.get( DefaultConfigurationPresetFactory.PRESET_ID );
-        }
-    }
-
-    public IPreset getMinimalConfiguration()
-    {
-        synchronized( this.lock )
-        {
-            return this.availablePresets.get( MinimalConfigurationPresetFactory.PRESET_ID );
-        }
-    }
-
-    public Set<IRuntime> getTargetableRuntimes()
-    {
-        synchronized( this.lock )
-        {
-            return this.targetableRuntimes;
-        }
-    }
-    
-    public boolean isTargetable( final IRuntime runtime )
-    {
-        synchronized( this.lock )
-        {
-            return this.targetableRuntimes.contains( runtime );
-        }
-    }
-    
-    public void refreshTargetableRuntimes()
-    {
-        suspendEventNotification();
-        
-        try
-        {
-            synchronized( this.lock )
-            {
-                final Set<IRuntime> result = new HashSet<IRuntime>();
-                
-                for( IRuntime r : RuntimeManager.getRuntimes() )
-                {
-                    boolean ok;
-                    
-                    if( this.project != null && 
-                        this.project.getTargetedRuntimes().contains( r ) )
-                    {
-                        ok = true;
-                    }
-                    else
-                    {
-                        ok = true;
-                        
-                        for( IProjectFacetVersion fv : this.facets )
-                        {
-                            if( ! r.supports( fv ) )
-                            {
-                                ok = false;
-                                break;
-                            }
-                        }
-                    }
-        
-                    if( ok )
-                    {
-                        result.add( r );
-                    }
-                }
-                
-                if( ! this.targetableRuntimes.equals( result ) )
-                {
-                    this.targetableRuntimes.clear();
-                    this.targetableRuntimes.addAll( result );
-                    notifyListeners( new FacetedProjectEvent( this, IFacetedProjectEvent.Type.TARGETABLE_RUNTIMES_CHANGED ) );
-                    
-                    final List<IRuntime> toRemove = new ArrayList<IRuntime>();
-                    
-                    for( IRuntime r : this.targetedRuntimes )
-                    {
-                        if( ! this.targetableRuntimes.contains( r ) )
-                        {
-                            toRemove.add( r );
-                        }
-                    }
-                    
-                    this.targetedRuntimes.removeAll( toRemove );
-                    
-                    if( ! toRemove.isEmpty() )
-                    {
-                        notifyListeners( new FacetedProjectEvent( this, IFacetedProjectEvent.Type.TARGETED_RUNTIMES_CHANGED ) );
-                        refreshAvailableFacets();
-                        
-                        if( this.primaryRuntime != null && 
-                            ! this.targetableRuntimes.contains( this.primaryRuntime ) )
-                        {
-                            autoAssignPrimaryRuntime();
-                        }
-                    }
-                }
-            }
-        }
-        finally
-        {
-            resumeEventNotification();
-        }
-    }
-    
-    public Set<IRuntime> getTargetedRuntimes()
-    {
-        synchronized( this.lock )
-        {
-            return this.targetedRuntimes;
-        }
-    }
-    
-    public boolean isTargeted( final IRuntime runtime )
-    {
-        synchronized( this.lock )
-        {
-            return this.targetedRuntimes.contains( runtime );
-        }
-    }
-    
-    public void setTargetedRuntimes( final Set<IRuntime> runtimes )
-    {
-        suspendEventNotification();
-        
-        try
-        {
-            synchronized( this.lock )
-            {
-                if( ! this.targetedRuntimes.equals( runtimes ) )
-                {
-                    this.targetedRuntimes.clear();
-                    this.targetedRuntimes.addAll( runtimes );
-                    
-                    notifyListeners( new FacetedProjectEvent( this, IFacetedProjectEvent.Type.TARGETED_RUNTIMES_CHANGED ) );
-                    notifyListeners( new FacetedProjectEvent( this, IFacetedProjectEvent.Type.PROJECT_MODIFIED ) );
-                    refreshAvailableFacets();
-                    
-                    if( this.primaryRuntime == null ||
-                        ! this.targetedRuntimes.contains( this.primaryRuntime ) )
-                    {
-                        autoAssignPrimaryRuntime();
-                    }
-                }
-            }
-        }
-        finally
-        {
-            resumeEventNotification();
-        }
-    }
-    
-    public void addTargetedRuntime( final IRuntime runtime )
-    {
-        suspendEventNotification();
-        
-        try
-        {
-            synchronized( this.lock )
-            {
-                if( runtime == null )
-                {
-                    throw new NullPointerException();
-                }
-                else
-                {
-                    this.targetedRuntimes.add( runtime );
-                    
-                    notifyListeners( new FacetedProjectEvent( this, IFacetedProjectEvent.Type.TARGETED_RUNTIMES_CHANGED ) );
-                    refreshAvailableFacets();
-                    
-                    if( this.primaryRuntime == null )
-                    {
-                        this.primaryRuntime = runtime;
-
-                        notifyListeners( new FacetedProjectEvent( this, IFacetedProjectEvent.Type.PRIMARY_RUNTIME_CHANGED ) );
-                        refreshAvailablePresets();
-                    }
-                    
-                    notifyListeners( new FacetedProjectEvent( this, IFacetedProjectEvent.Type.PROJECT_MODIFIED ) );
-                }
-            }
-        }
-        finally
-        {
-            resumeEventNotification();
-        }
-    }
-    
-    public void removeTargetedRuntime( final IRuntime runtime )
-    {
-        suspendEventNotification();
-        
-        try
-        {
-            synchronized( this.lock )
-            {
-                if( runtime == null )
-                {
-                    throw new NullPointerException();
-                }
-                else
-                {
-                    if( this.targetedRuntimes.remove( runtime ) )
-                    {
-                        notifyListeners( new FacetedProjectEvent( this, IFacetedProjectEvent.Type.TARGETED_RUNTIMES_CHANGED ) );
-                        refreshAvailableFacets();
-                        
-                        if( runtime.equals( this.primaryRuntime ) )
-                        {
-                            autoAssignPrimaryRuntime();
-                        }
-                        
-                        notifyListeners( new FacetedProjectEvent( this, IFacetedProjectEvent.Type.PROJECT_MODIFIED ) );
-                    }
-                }
-            }
-        }
-        finally
-        {
-            resumeEventNotification();
-        }
-    }
-    
-    public IRuntime getPrimaryRuntime()
-    {
-        synchronized( this.lock )
-        {
-            return this.primaryRuntime;
-        }
-    }
-    
-    public void setPrimaryRuntime( final IRuntime runtime )
-    {
-        suspendEventNotification();
-        
-        try
-        {
-            synchronized( this.lock )
-            {
-                if( ! equals( this.primaryRuntime, runtime ) )
-                {
-                    if( runtime == null && this.targetedRuntimes.size() > 0 )
-                    {
-                        throw new IllegalArgumentException();
-                    }
-                    
-                    if( this.targetedRuntimes.contains( runtime ) )
-                    {
-                        this.primaryRuntime = runtime;
-                    }
-                    
-                    notifyListeners( new FacetedProjectEvent( this, IFacetedProjectEvent.Type.PRIMARY_RUNTIME_CHANGED ) );
-                    refreshAvailablePresets();
-                }
-            }
-        }
-        finally
-        {
-            resumeEventNotification();
-        }
-    }
-    
-    private void autoAssignPrimaryRuntime()
-    {
-        if( this.targetedRuntimes.isEmpty() )
-        {
-            this.primaryRuntime = null;
-        }
-        else
-        {
-            // Pick one to be the primary. No special semantics as to which 
-            // one.
-            
-            this.primaryRuntime = this.targetedRuntimes.iterator().next();
-        }
-
-        notifyListeners( new FacetedProjectEvent( this, IFacetedProjectEvent.Type.PRIMARY_RUNTIME_CHANGED ) );
-        refreshAvailablePresets();
-    }
-    
-    public Set<Action> getProjectFacetActions()
-    {
-        synchronized( this.lock )
-        {
-            return this.actions;
-        }
-    }
-    
-    public Action getProjectFacetAction( final IProjectFacet facet )
-    {
-        synchronized( this.lock )
-        {
-            return getProjectFacetAction( this.actions, null, facet );
-        }
-    }
-    
-    private static Action getProjectFacetAction( final Set<Action> actions,
-                                                 final Action.Type type,
-                                                 final IProjectFacetVersion fv )
-    {
-        for( Action action : actions )
-        {
-            if( ( type == null || action.getType() == type ) && 
-                action.getProjectFacetVersion() == fv )
-            {
-                return action;
-            }
-        }
-        
-        return null;
-    }
-    
-    private static Action getProjectFacetAction( final Set<Action> actions,
-                                                 final Action.Type type,
-                                                 final IProjectFacet f )
-    {
-        for( Action action : actions )
-        {
-            if( ( type == null || action.getType() == type ) && 
-                action.getProjectFacetVersion().getProjectFacet() == f )
-            {
-                return action;
-            }
-        }
-        
-        return null;
-    }
-    
-    private Action createProjectFacetAction( final Set<Action> actions,
-                                             final Action.Type type,
-                                             final IProjectFacetVersion fv )
-    {
-        Action action = getProjectFacetAction( actions, type, fv );
-        
-        if( action == null )
-        {
-            final Set<IProjectFacetVersion> base = getBaseProjectFacets();
-            
-            Object config = null;
-            
-            if( fv.supports( base, type ) )
-            {
-                try
-                {
-                    final IProjectFacet f = fv.getProjectFacet();
-                    
-                    action = getProjectFacetAction( actions, type, f );
-                    
-                    if( action != null )
-                    {
-                        final IProjectFacetVersion current
-                            = action.getProjectFacetVersion();
-                        
-                        if( fv.supports( base, type ) &&
-                            current.supports( base, type ) &&
-                            fv.getActionDefinition( base, type )
-                              == current.getActionDefinition( base, type ) )
-                        {
-                            config = action.getConfig();
-                        }
-                    }
-                    
-                    if( config == null )
-                    {
-                        final IActionDefinition def = fv.getActionDefinition( base, type );
-                        config = def.createConfigObject();
-                    }
-                    
-                    bindProjectFacetActionConfig( config, fv );
-                }
-                catch( CoreException e )
-                {
-                    FacetCorePlugin.log( e );
-                }
-            }
-
-            action = new Action( type, fv, config );
-        }
-        
-        return action;
-    }
-    
-    private void bindProjectFacetActionConfig( final Object actionConfig,
-                                               final IProjectFacetVersion fv )
-    {
-        if( actionConfig != null )
-        {
-            IActionConfig c1 = null;
-            
-            if( actionConfig instanceof IActionConfig )
-            {
-                c1 = (IActionConfig) actionConfig;
-            }
-            else if( actionConfig != null )
-            {
-                final IAdapterManager m 
-                    = Platform.getAdapterManager();
-                
-                final String t
-                    = IActionConfig.class.getName();
-                
-                c1 = (IActionConfig) m.loadAdapter( actionConfig, t );
-            }
-            
-            if( c1 != null )
-            {
-                c1.setProjectName( getProjectName() );
-                
-                if( fv != null )
-                {
-                    c1.setVersion( fv );
-                }
-            }
-            
-            ActionConfig c2 = null;
-            
-            if( actionConfig instanceof ActionConfig )
-            {
-                c2 = (ActionConfig) actionConfig;
-            }
-            else if( actionConfig != null )
-            {
-                final IAdapterManager m = Platform.getAdapterManager();
-                final String t = ActionConfig.class.getName();
-                c2 = (ActionConfig) m.loadAdapter( actionConfig, t );
-            }
-            
-            if( c2 != null )
-            {
-                c2.setFacetedProjectWorkingCopy( this );
-                
-                if( fv != null )
-                {
-                    c2.setProjectFacetVersion( fv );
-                }
-            }
-        }
-    }
-    
-    private void refreshProjectFacetActions()
-    {
-        final Set<IProjectFacetVersion> base = getBaseProjectFacets();
-        final Set<IProjectFacetVersion> sel = getProjectFacets();
-        final Set<Action> old = new HashSet<Action>( this.actions );
-        final Set<Action> newActions = new HashSet<Action>();
-        
-        // What has been removed?
-        
-        for( IProjectFacetVersion fv : base )
-        {
-            if( ! sel.contains( fv ) )
-            {
-                newActions.add( createProjectFacetAction( old, Action.Type.UNINSTALL, fv ) );
-            }
-        }
-
-        // What has been added?
-
-        for( IProjectFacetVersion fv : sel )
-        {
-            if( ! base.contains( fv ) )
-            {
-                newActions.add( createProjectFacetAction( old, Action.Type.INSTALL, fv ) );
-            }
-        }
-        
-        // Coalesce uninstall/install pairs into version change actions, if
-        // possible.
-        
-        final Set<Action> toadd = new HashSet<Action>();
-        final Set<Action> toremove = new HashSet<Action>();
-        
-        for( Action action1 : newActions )
-        {
-            for( Action action2 : newActions )
-            {
-                if( action1.getType() == Action.Type.UNINSTALL &&
-                    action2.getType() == Action.Type.INSTALL )
-                {
-                    final IProjectFacetVersion f1 = action1.getProjectFacetVersion();
-                    final IProjectFacetVersion f2 = action2.getProjectFacetVersion();
-                    
-                    if( f1.getProjectFacet() == f2.getProjectFacet() )
-                    {
-                        toremove.add( action1 );
-                        toremove.add( action2 );
-                        toadd.add( createProjectFacetAction( old, Action.Type.VERSION_CHANGE, f2 ) );
-                    }
-                }
-            }
-        }
-        
-        newActions.removeAll( toremove );
-        newActions.addAll( toadd );
-        
-        this.actions = newActions;
-        
-        for( Action action : toremove )
-        {
-            final Object actionConfig = action.getConfig();
-            ActionConfig c = null;
-            
-            if( actionConfig instanceof ActionConfig )
-            {
-                c = (ActionConfig) actionConfig;
-            }
-            else if( actionConfig != null )
-            {
-                final IAdapterManager m = Platform.getAdapterManager();
-                final String t = ActionConfig.class.getName();
-                c = (ActionConfig) m.loadAdapter( actionConfig, t );
-            }
-            
-            if( c != null )
-            {
-                c.dispose();
-            }
-        }
-    }
-    
-    public void setProjectFacetActionConfig( final IProjectFacet facet,
-                                             final Object newActionConfig )
-    {
-        suspendEventNotification();
-        
-        try
-        {
-            synchronized( this.lock )
-            {
-                final Action oldAction = getProjectFacetAction( facet );
-                
-                if( oldAction == null )
-                {
-                    throw new IllegalArgumentException();
-                }
-                
-                final IProjectFacetVersion fv = oldAction.getProjectFacetVersion();
-                final Action newAction = new Action( oldAction.getType(), fv, newActionConfig );
-                bindProjectFacetActionConfig( newActionConfig, fv );
-                
-                this.actions.remove( oldAction );
-                this.actions.add( newAction );
-            }
-        }
-        finally
-        {
-            resumeEventNotification();
-        }
-    }
-    
-    public void addListener( final IFacetedProjectListener listener,
-                             final IFacetedProjectEvent.Type... types )
-    {
-        synchronized( this.lock )
-        {
-            if( types.length == 0 )
-            {
-                throw new IllegalArgumentException();
-            }
-            
-            for( IFacetedProjectEvent.Type type : types )
-            {
-                this.listeners.get( type ).add( listener );
-            }
-        }
-    }
-
-    public void removeListener( final IFacetedProjectListener listener )
-    {
-        synchronized( this.lock )
-        {
-            for( List<IFacetedProjectListener> listeners : this.listeners.values() )
-            {
-                listeners.remove( listener );
-            }
-        }
-    }
-
-    private void notifyListeners( final IFacetedProjectEvent event )
-    {
-        List<IFacetedProjectListener> listenersToNotify = null;
-        
-        synchronized( this.lock )
-        {
-            if( this.suspendEventNoticationCounter == 0 )
-            {
-                listenersToNotify = this.listeners.get( event.getType() );
-            }
-            else
-            {
-                this.queuedEvents.add( event );
-            }
-        }
-        
-        if( listenersToNotify != null )
-        {
-            for( IFacetedProjectListener listener : listenersToNotify )
-            {
-                try
-                {
-                    listener.handleEvent( event );
-                }
-                catch( Exception e )
-                {
-                    FacetCorePlugin.log( e );
-                }
-            }
-        }
-    }
-    
-    private void suspendEventNotification()
-    {
-        synchronized( this.lock )
-        {
-            this.suspendEventNoticationCounter++;
-        }
-    }
-    
-    private void resumeEventNotification()
-    {
-        List<IFacetedProjectEvent> eventsToFire = null;
-        
-        synchronized( this.lock )
-        {
-            this.suspendEventNoticationCounter--;
-            
-            if( this.suspendEventNoticationCounter == 0 )
-            {
-                if( ! this.queuedEvents.isEmpty() )
-                {
-                    eventsToFire = new ArrayList<IFacetedProjectEvent>();
-                    eventsToFire.addAll( this.queuedEvents );
-                    this.queuedEvents.clear();
-                }
-            }
-            else if( this.suspendEventNoticationCounter < 0 )
-            {
-                throw new IllegalStateException();
-            }
-        }
-        
-        if( eventsToFire != null )
-        {
-            for( IFacetedProjectEvent event : eventsToFire )
-            {
-                notifyListeners( event );
-            }
-        }
-    }
-    
-    public IStatus validate( final IProgressMonitor monitor )
-    {
-        return validate();
-    }
-    
-    public IStatus validate()
-    {
-        synchronized( this.lock )
-        {
-            final MultiStatus ms = Constraint.createMultiStatus();
-            
-            if( ! this.projectNameValidation.isOK() )
-            {
-                final StatusWrapper wrapper = new StatusWrapper( this.projectNameValidation );
-                wrapper.setCode( PROBLEM_PROJECT_NAME );
-                
-                ms.add( wrapper );
-            }
-            
-            for( IStatus st : this.problems )
-            {
-                final StatusWrapper wrapper = new StatusWrapper( st );
-                wrapper.setCode( PROBLEM_OTHER );
-                
-                ms.add( wrapper );
-            }
-            
-            for( IRuntime runtime : this.targetedRuntimes )
-            {
-                final IStatus st = runtime.validate( new NullProgressMonitor() );
-                
-                if( ! st.isOK() )
-                {
-                    final String msg 
-                        = Resources.bind( Resources.invalidRuntimeMsg, runtime.getName(), 
-                                          st.getMessage() );
-                    
-                    final StatusWrapper wrapper = new StatusWrapper( st );
-                    wrapper.setMessage( msg );
-                    
-                    ms.add( wrapper );
-                }
-            }
-
-            return ms;
-        }
-    }
-    
-    private void performValidation()
-    {
-        final Set<IProjectFacetVersion> base = getBaseProjectFacets();
-
-        final List<IStatus> probs = new ArrayList<IStatus>();
-        final MultiStatus ms = (MultiStatus) ProjectFacetsManager.check( base, this.actions );
-        
-        for( IStatus st : ms.getChildren() )
-        {
-            probs.add( st );
-        }
-        
-        for( IProjectFacetVersion fv : base )
-        {
-            final IProjectFacet f = fv.getProjectFacet();
-            
-            String msg = null; 
-            
-            if( f.getPluginId() == null )
-            {
-                msg = NLS.bind( Resources.facetNotFound, f.getId() );
-            }
-            else if( fv.getPluginId() == null )
-            {
-                msg = NLS.bind( Resources.facetVersionNotFound, f.getId(), 
-                                fv.getVersionString() );
-            }
-            
-            if( msg != null )
-            {
-                final IStatus sub
-                    = new Status( IStatus.WARNING, FacetCorePlugin.PLUGIN_ID, 0, msg, null );
-                
-                probs.add( sub );
-            }
-        }
-        
-        for( IRuntime r : getTargetedRuntimes() )
-        {
-            for( IProjectFacetVersion fv : getProjectFacets() )
-            {
-                if( ! r.supports( fv ) )
-                {
-                    final String msg
-                        = NLS.bind( Resources.facetNotSupportedByTarget, fv.toString(), 
-                                    r.getLocalizedName() );
-                    
-                    final IStatus sub
-                        = new Status( IStatus.ERROR, FacetCorePlugin.PLUGIN_ID, 0, msg, null );
-                    
-                    probs.add( sub );
-                }
-            }
-        }
-        
-        if( ! probs.equals( this.problems ) )
-        {
-            this.problems = probs;
-            notifyListeners( new FacetedProjectEvent( this, IFacetedProjectEvent.Type.VALIDATION_PROBLEMS_CHANGED ) );
-        }
-    }
-    
-    public boolean isDirty()
-    {
-        if( this.project == null )
-        {
-            return true;
-        }
-        else
-        {
-            return ! equal( this.project.getFixedProjectFacets(), getFixedProjectFacets() ) ||
-                   ! equal( this.project.getProjectFacets(), getProjectFacets() ) ||
-                   ! equal( this.project.getTargetedRuntimes(), getTargetedRuntimes() ) ||
-                   ! equal( this.project.getPrimaryRuntime(), getPrimaryRuntime() );
-        }
-    }
-    
-    private boolean equal( final Object obj1,
-                           final Object obj2 )
-    {
-        return MiscUtil.equal( obj1, obj2 );
-    }
-    
-    private boolean equal( final IRuntime r1,
-                           final IRuntime r2 )
-    {
-        if( r1 == null && r2 == null )
-        {
-            return true;
-        }
-        else if( r1 == null || r2 == null )
-        {
-            return false;
-        }
-        else
-        {
-            return r1.getName().equals( r2.getName() );
-        }
-    }
-    
-    private boolean equal( final Set<IRuntime> set1,
-                           final Set<IRuntime> set2 )
-    {
-        if( set1.size() != set2.size() )
-        {
-            return false;
-        }
-        else
-        {
-            for( IRuntime r1 : set1 )
-            {
-                boolean found = false;
-                
-                for( IRuntime r2 : set2 )
-                {
-                    if( r1.getName().equals( r2.getName() ) )
-                    {
-                        found = true;
-                        break;
-                    }
-                }
-                
-                if( ! found )
-                {
-                    return false;
-                }
-            }
-            
-            return true;
-        }
-    }
-    
-    public void commitChanges( final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        final SubMonitor pm = SubMonitor.convert( monitor, 100 );
-        
-        try
-        {
-            // In order to avoid deadlocks, we clone the working copy. This allows us to release
-            // the lock on this working copy while running mergeChanges(). This is important since
-            // mergeChanges() can call out to third-party code.
-            
-            final FacetedProjectWorkingCopy clone;
-            
-            synchronized( this.lock )
-            {
-                clone = (FacetedProjectWorkingCopy) clone();
-            }
-            
-            try
-            {
-                final IFacetedProject fpj;
-                    
-                if( this.project == null )
-                {
-                    fpj = ProjectFacetsManager.create( this.projectName,
-                                                       this.projectLocation, 
-                                                       pm.newChild( 10, SubMonitor.SUPPRESS_ALL_LABELS ) );
-                    
-                    this.project = fpj;
-                }
-                else
-                {
-                    fpj = clone.getFacetedProject();
-                    pm.worked( 10 );
-                }
-                
-                ( (FacetedProject) fpj ).mergeChanges( clone, pm.newChild( 90 ) );
-            }
-            finally
-            {
-                clone.dispose();
-            }
-                
-            // Reset the working copy so that it can be used again.
-            
-            synchronized( this.lock )
-            {
-                this.projectName = null;
-                this.projectNameValidation = Status.OK_STATUS;
-                this.projectLocation = null;
-                
-                revertChanges();
-            }
-        }
-        finally
-        {
-            pm.done();
-        }
-    }
-    
-    public void mergeChanges( final IFacetedProjectWorkingCopy fpjwc )
-    {
-        suspendEventNotification();
-        
-        try
-        {
-            synchronized( this.lock )
-            {
-                setProjectName( fpjwc.getProjectName() );
-                setProjectLocation( fpjwc.getProjectLocation() );
-                setFixedProjectFacets( fpjwc.getFixedProjectFacets() );
-                setProjectFacets( fpjwc.getProjectFacets() );
-                setTargetedRuntimes( fpjwc.getTargetedRuntimes() );
-                setPrimaryRuntime( fpjwc.getPrimaryRuntime() );
-                
-                final IPreset selectedPreset = fpjwc.getSelectedPreset();
-                
-                if( selectedPreset != null )
-                {
-                    setSelectedPreset( selectedPreset.getId() );
-                }
-                
-                this.actions.clear();
-                this.actions.addAll( ( (FacetedProjectWorkingCopy) fpjwc  ).actions );
-                
-                for( IFacetedProject.Action action : this.actions )
-                {
-                    bindProjectFacetActionConfig( action.getConfig(), null );
-                }
-            }
-        }
-        finally
-        {
-            resumeEventNotification();
-        }
-    }
-    
-    public void revertChanges()
-    {
-        suspendEventNotification();
-        
-        try
-        {
-            synchronized( this.lock )
-            {
-            	if( this.project != null )
-            	{
-                    setFixedProjectFacets( this.project.getFixedProjectFacets() );
-                    setTargetedRuntimes( Collections.<IRuntime>emptySet() );
-                    setProjectFacets( this.project.getProjectFacets() );
-                    setTargetedRuntimes( this.project.getTargetedRuntimes() );
-                    setPrimaryRuntime( this.project.getPrimaryRuntime() );
-                    this.actions.clear();
-            	}
-            	else
-            	{
-            		throw new UnsupportedOperationException();
-            	}
-            }
-        }
-        finally
-        {
-            resumeEventNotification();
-        }
-    }
-    
-    public IFacetedProjectWorkingCopy clone()
-    {
-        synchronized( this.lock )
-        {
-            final FacetedProjectWorkingCopy clone = new FacetedProjectWorkingCopy( this.project );
-            
-            if( this.project == null )
-            {
-	            clone.setProjectName( getProjectName() );
-	            clone.setProjectLocation( getProjectLocation() );
-            }
-            
-            clone.setFixedProjectFacets( getFixedProjectFacets() );
-            clone.setProjectFacets( getProjectFacets() );
-            clone.setTargetedRuntimes( getTargetedRuntimes() );
-            clone.setPrimaryRuntime( getPrimaryRuntime() );
-            
-            final IPreset selectedPreset = getSelectedPreset();
-            
-            if( selectedPreset != null )
-            {
-                clone.setSelectedPreset( selectedPreset.getId() );
-            }
-            
-            clone.actions.clear();
-            clone.actions.addAll( this.actions );
-
-            return clone;
-        }
-    }
-    
-    public void dispose()
-    {
-        synchronized( this.disposeTasks )
-        {
-            for( Runnable task : this.disposeTasks )
-            {
-                try
-                {
-                    task.run();
-                }
-                catch( Exception e )
-                {
-                    FacetCorePlugin.log( e );
-                }
-            }
-        }
-    }
-    
-    public void addDisposeTask( final Runnable task )
-    {
-        synchronized( this.disposeTasks )
-        {
-            this.disposeTasks.add( task );
-        }
-    }
-    
-    private static boolean equals( final Object obj1,
-                                   final Object obj2 )
-    {
-        if( obj1 == obj2 )
-        {
-            return true;
-        }
-        else if( obj1 == null || obj2 == null )
-        {
-            return false;
-        }
-        else
-        {
-            return obj1.equals( obj2 );
-        }
-    }
-    
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String couldNotSelectPreset;
-        public static String facetNotFound;
-        public static String facetVersionNotFound;
-        public static String facetNotSupportedByTarget;
-        public static String invalidRuntimeMsg;
-        public static String refreshingAvailableRuntimesJobName;
-        
-        static
-        {
-            initializeMessages( FacetedProjectWorkingCopy.class.getName(), 
-                                Resources.class );
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectWorkingCopy.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectWorkingCopy.properties
deleted file mode 100644
index b9b5691..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectWorkingCopy.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-couldNotSelectPreset = Could not select preset "{0}". One or more required of the required facets are not visible.
-facetNotFound = Implementation of project facet {0} could not be found. Functionality will be limited.
-facetVersionNotFound = Implementation of version {1} of project facet {0} could not be found. Functionality will be limited.
-facetNotSupportedByTarget = Project facet {0} is not supported by target runtime {1}.
-invalidRuntimeMsg = Runtime "{0}" is invalid. {1}
-refreshingAvailableRuntimesJobName = Refreshing available runtimes...
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Group.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Group.java
deleted file mode 100644
index f2d4baa..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Group.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.wst.common.project.facet.core.IGroup;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * The implementation of the {@link IGroup} interface.
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class Group 
-
-    implements IGroup 
-    
-{
-    private String id;
-    private String label;
-    private String description;
-    private final Set<IProjectFacetVersion> members;
-    private final Set<IProjectFacetVersion> membersReadOnly;
-    
-    Group() 
-    {
-        this.description = "";  //$NON-NLS-1$
-        this.members = new HashSet<IProjectFacetVersion>();
-        this.membersReadOnly = Collections.unmodifiableSet( this.members );
-    }
-    
-    public String getId() 
-    {
-        return this.id;
-    }
-    
-    void setId( final String id )
-    {
-        this.id = id;
-        
-        if( this.label == null )
-        {
-            this.label = id;
-        }
-    }
-    
-    public String getLabel()
-    {
-        return this.label;
-    }
-    
-    void setLabel( final String label )
-    {
-        this.label = label;
-    }
-    
-    public String getDescription()
-    {
-        return this.description;
-    }
-    
-    void setDescription( final String description )
-    {
-        this.description = description;
-    }
-    
-    public Set<IProjectFacetVersion> getMembers()
-    {
-        return this.membersReadOnly;
-    }
-    
-    void addMember( final IProjectFacetVersion fv )
-    {
-        this.members.add( fv );
-    }
-    
-    public String toString()
-    {
-        return getLabel();
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/PresetsExtensionPoint.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/PresetsExtensionPoint.java
deleted file mode 100644
index 69659e3..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/PresetsExtensionPoint.java
+++ /dev/null
@@ -1,643 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import static org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin.PLUGIN_ID;
-import static org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin.createErrorStatus;
-import static org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin.log;
-import static org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin.logError;
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.findExtensions;
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.findOptionalElement;
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.findRequiredAttribute;
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.findRequiredElement;
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.getElementValue;
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.getTopLevelElements;
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.instantiate;
-
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.IDynamicPreset;
-import org.eclipse.wst.common.project.facet.core.IPreset;
-import org.eclipse.wst.common.project.facet.core.IPresetFactory;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.PresetDefinition;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.common.project.facet.core.util.internal.IndexedSet;
-import org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.InvalidExtensionException;
-
-/**
- * Contains the logic for processing the <code>presets</code> extension point.
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class PresetsExtensionPoint
-{
-    public static final String EXTENSION_POINT_ID = "presets"; //$NON-NLS-1$
-    private static final String OLD_EXTENSION_POINT_ID = "facets"; //$NON-NLS-1$
-    
-    private static final String EL_DESCRIPTION = "description"; //$NON-NLS-1$
-    private static final String EL_DYNAMIC_PRESET = "dynamic-preset"; //$NON-NLS-1$
-    private static final String EL_FACET = "facet"; //$NON-NLS-1$
-    private static final String EL_FACTORY = "factory"; //$NON-NLS-1$
-    private static final String EL_LABEL = "label"; //$NON-NLS-1$
-    private static final String EL_PRESET = "preset"; //$NON-NLS-1$
-    private static final String EL_STATIC_PRESET = "static-preset"; //$NON-NLS-1$
-    private static final String ATTR_CLASS = "class"; //$NON-NLS-1$
-    private static final String ATTR_EXTENDS = "extends"; //$NON-NLS-1$
-    private static final String ATTR_ID = "id"; //$NON-NLS-1$
-    private static final String ATTR_VERSION = "version"; //$NON-NLS-1$
-    
-    private static final String DEFAULT_DESCRIPTION = ""; //$NON-NLS-1$
-    
-    private static IndexedSet<String,IPreset> presets = null;
-    
-    public static Set<IPreset> getPresets()
-    {
-        readExtensions();
-        return presets.getUnmodifiable();
-    }
-    
-    public static IPreset getPreset( final String id )
-    {
-        readExtensions();
-        return presets.get( id );
-    }
-    
-    private static synchronized void readExtensions()
-    {
-        if( presets != null )
-        {
-            return;
-        }
-        
-        presets = new IndexedSet<String,IPreset>();        
-        
-        for( IConfigurationElement element 
-             : getTopLevelElements( findExtensions( PLUGIN_ID, EXTENSION_POINT_ID ) ) )
-        {
-            final String elName = element.getName();
-            
-            if( elName.equals( EL_STATIC_PRESET ) )
-            {
-                try
-                {
-                    readStaticPreset( element );
-                }
-                catch( InvalidExtensionException e )
-                {
-                    // Continue. The problem has been reported to the user via the log.
-                }
-            }
-            else if( elName.equals( EL_DYNAMIC_PRESET ) )
-            {
-                try
-                {
-                    readDynamicPreset( element );
-                }
-                catch( InvalidExtensionException e )
-                {
-                    // Continue. The problem has been reported to the user via the log.
-                }
-            }
-        }
-
-        for( IConfigurationElement element 
-             : getTopLevelElements( findExtensions( PLUGIN_ID, OLD_EXTENSION_POINT_ID ) ) )
-        {
-            if( element.getName().equals( EL_PRESET ) )
-            {
-                try
-                {
-                    readStaticPreset( element );
-                }
-                catch( InvalidExtensionException e )
-                {
-                    // Continue. The problem has been reported to the user via the log.
-                }
-            }
-        }
-        
-        // Resolve the base presets. Make sure that no presets are extending presets that do not
-        // exist, check for circular references, etc.
-        
-        Set<IPreset> copy = new HashSet<IPreset>( presets ); 
-        
-        for( IPreset preset : copy )
-        {
-            if( presets.contains( preset ) )
-            {
-                resolveBasePreset( preset, new HashSet<IPreset>() );
-            }
-        }
-        
-        // Find static presets that are extending dynamic presets and make them into dynamic
-        // presets (StaticExtendingDynamicPreset class).
-        
-        boolean doAnotherPass = true;
-        
-        while( doAnotherPass )
-        {
-            doAnotherPass = false;
-            
-            for( IPreset preset : presets )
-            {
-                if( preset.getType() == IPreset.Type.STATIC )
-                {
-                    final StaticPreset stPreset = (StaticPreset) preset;
-                    final String basePresetId = stPreset.getBasePresetId();
-                    
-                    if( basePresetId != null )
-                    {
-                        final IPreset basePreset = getPreset( basePresetId );
-                        
-                        if( basePreset.getType() == IPreset.Type.DYNAMIC )
-                        {
-                            final StaticExtendingDynamicPreset stPresetNew
-                                = new StaticExtendingDynamicPreset( stPreset.getId(), 
-                                                                    stPreset.getPluginId(),
-                                                                    stPreset.getLabel(),
-                                                                    stPreset.getDescription(),
-                                                                    stPreset.getBasePresetId(),
-                                                                    stPreset.getProjectFacets() );
-                            
-                            presets.add( stPresetNew.getId(), stPresetNew );
-
-                            doAnotherPass = true;
-                            break;
-                        }
-                    }
-                }
-            }
-        }
-    }
-    
-    private static void readStaticPreset( final IConfigurationElement el )
-    
-        throws InvalidExtensionException
-        
-    {
-        final String pluginId = el.getContributor().getName();
-        final String id = findRequiredAttribute( el, ATTR_ID );
-        
-        final IConfigurationElement elLabel = findOptionalElement( el, EL_LABEL );
-        final String label = getElementValue( elLabel, id );
-        
-        final IConfigurationElement elDesc = findOptionalElement( el, EL_DESCRIPTION );
-        final String description = getElementValue( elDesc, DEFAULT_DESCRIPTION );
-        
-        String basePreset = el.getAttribute( ATTR_EXTENDS );
-        
-        if( basePreset != null )
-        {
-            basePreset = basePreset.trim();
-            
-            if( basePreset.length() == 0 )
-            {
-                basePreset = null;
-            }
-        }
-        
-        final Set<IProjectFacetVersion> facets = new HashSet<IProjectFacetVersion>();
-
-        for( IConfigurationElement child : el.getChildren() )
-        {
-            final String childName = child.getName();
-            
-            if( childName.equals( EL_FACET ) )
-            {
-                final String fid = findRequiredAttribute( child, ATTR_ID );
-                final String fver = findRequiredAttribute( child, ATTR_VERSION );
-                
-                if( ! ProjectFacetsManager.isProjectFacetDefined( fid ) )
-                {
-                    final String msg
-                        = Resources.bind( Resources.presetUsesUnknownFacet, id, pluginId, fid );
-                    
-                    logError( msg );
-                    
-                    return;
-                }
-                
-                final IProjectFacet f = ProjectFacetsManager.getProjectFacet( fid );
-                
-                if( ! f.hasVersion( fver ) )
-                {
-                    final String msg
-                        = Resources.bind( Resources.presetUsesUnknownFacetVersion, id, pluginId,
-                                          fid, fver );
-                    
-                    logError( msg );
-                    
-                    return;
-                }
-                
-                final IProjectFacetVersion fv = f.getVersion( fver );
-                
-                facets.add( fv );
-            }
-        }
-        
-        final StaticPreset preset 
-            = new StaticPreset( id, pluginId, label, description, basePreset, facets );
-        
-        presets.add( id, preset );
-    }
-
-    private static void readDynamicPreset( final IConfigurationElement el )
-    
-        throws InvalidExtensionException
-        
-    {
-        final String pluginId = el.getContributor().getName();
-        final String id = findRequiredAttribute( el, ATTR_ID );
-        final IConfigurationElement elFactory = findRequiredElement( el, EL_FACTORY );
-        final String factoryClassName = findRequiredAttribute( elFactory, ATTR_CLASS );
-        
-        final DynamicPreset preset = new DynamicPreset( id, pluginId, factoryClassName );
-        presets.add( id, preset );
-    }
-    
-    private static boolean resolveBasePreset( final IPreset preset,
-                                              final Set<IPreset> visitedPresets )
-    {
-        if( preset.getType() == IPreset.Type.STATIC )
-        {
-            final StaticPreset stPreset = (StaticPreset) preset;
-            final String basePresetId = stPreset.getBasePresetId();
-            
-            if( basePresetId != null )
-            {
-                final IPreset basePreset = getPreset( basePresetId );
-                boolean problem = false;
-                
-                visitedPresets.add( preset );
-                
-                if( basePreset == null )
-                {
-                    final String msg
-                        = Resources.bind( Resources.basePresetNotFound, stPreset.getId(), 
-                                          stPreset.getPluginId(), basePresetId );
-                    
-                    logError( msg );
-                    
-                    problem = true;
-                }
-                else if( visitedPresets.contains( basePreset ) )
-                {
-                    final StringBuilder cycle = new StringBuilder();
-                    final int cycleSize = visitedPresets.size();
-                    int count = 0;
-                    
-                    for( IPreset vp : visitedPresets )
-                    {
-                        count++;
-                        
-                        if( count > 1 )
-                        {
-                            if( count == cycleSize )
-                            {
-                                cycle.append( " and " ); //$NON-NLS-1$
-                            }
-                            else
-                            {
-                                cycle.append( ", " ); //$NON-NLS-1$
-                            }
-                        }
-                        
-                        cycle.append( '"' );
-                        cycle.append( vp.getId() );
-                        cycle.append( '"' );
-                    }
-                    
-                    final String msg = Resources.bind( Resources.cycleDetected, cycle.toString() );
-                    
-                    logError( msg );
-                    
-                    problem = true;
-                }
-                else if( ! resolveBasePreset( basePreset, visitedPresets ) )
-                {
-                    problem = true;
-                }
-
-                if( problem )
-                {
-                    PresetsExtensionPoint.presets.delete( preset.getId() );
-                    return false;
-                }
-            }
-        }
-        
-        return true;
-    }
-    
-    private static class StaticPreset
-    
-        implements IPreset
-        
-    {
-        private final String id;
-        private final String pluginId;
-        private final String label;
-        private final String description;
-        private final String basePresetId;
-        private final Set<IProjectFacet> facets;
-        private final Set<IProjectFacetVersion> facetVersions;
-        private final Set<IProjectFacetVersion> facetVersionsReadOnly;
-        
-        public StaticPreset( final String id,
-                             final String pluginId,
-                             final String label,
-                             final String description,
-                             final String basePreset,
-                             final Set<IProjectFacetVersion> facets )
-        {
-            this.id = id;
-            this.pluginId = pluginId;
-            this.label = label;
-            this.description = description;
-            this.basePresetId = basePreset;
-            this.facetVersions = facets;
-            this.facetVersionsReadOnly = Collections.unmodifiableSet( this.facetVersions );
-            
-            this.facets = new HashSet<IProjectFacet>( this.facetVersions.size() );
-            
-            for( IProjectFacetVersion fv : this.facetVersions )
-            {
-                this.facets.add( fv.getProjectFacet() );
-            }
-        }
-        
-        public final String getId()
-        {
-            return this.id;
-        }
-        
-        public final String getPluginId()
-        {
-            return this.pluginId;
-        }
-
-        public Type getType()
-        {
-            return Type.STATIC;
-        }
-        
-        public final String getLabel()
-        {
-            return this.label;
-        }
-
-        public final String getDescription()
-        {
-            return this.description;
-        }
-        
-        public final String getBasePresetId()
-        {
-            return this.basePresetId;
-        }
-
-        public Set<IProjectFacetVersion> getProjectFacets()
-        {
-            if( this.basePresetId == null )
-            {
-                return this.facetVersionsReadOnly;
-            }
-            else
-            {
-                final IPreset basePreset = getPreset( this.basePresetId );
-                return createCombinedFacetSet( basePreset );
-            }
-        }
-
-        public final boolean isUserDefined()
-        {
-            return false;
-        }
-        
-        public final String toString()
-        {
-            return this.id;
-        }
-        
-        public boolean equals( final Object obj )
-        {
-            if( ! ( obj instanceof StaticPreset ) )
-            {
-                return false;
-            }
-            
-            final StaticPreset p = (StaticPreset) obj;
-            
-            return this.id.equals( p.id ) &&
-                   this.pluginId.equals( p.pluginId ) &&
-                   this.label.equals( p.label ) &&
-                   this.description.equals( p.description ) &&
-                   this.facetVersions.equals( p.facetVersions );
-        }
-        
-        protected final Set<IProjectFacetVersion> createCombinedFacetSet( final IPreset basePreset )
-        {
-            final Set<IProjectFacetVersion> result 
-                = new HashSet<IProjectFacetVersion>( this.facetVersions );
-            
-            for( IProjectFacetVersion fv : basePreset.getProjectFacets() )
-            {
-                if( ! this.facets.contains( fv.getProjectFacet() ) )
-                {
-                    result.add( fv );
-                }
-            }
-            
-            return Collections.unmodifiableSet( result );
-        }
-    }
-    
-    private static final class StaticExtendingDynamicPreset
-    
-        extends StaticPreset
-        implements IDynamicPreset
-        
-    {
-        public StaticExtendingDynamicPreset( final String id,
-                                             final String pluginId,
-                                             final String label,
-                                             final String description,
-                                             final String basePresetId,
-                                             final Set<IProjectFacetVersion> facets )
-        {
-            super( id, pluginId, label, description, basePresetId, facets );
-        }
-        
-        @Override
-        public Type getType()
-        {
-            return Type.DYNAMIC;
-        }
-        
-        @Override
-        public Set<IProjectFacetVersion> getProjectFacets()
-        {
-            return Collections.emptySet();
-        }
-
-        public IPreset resolve( final Map<String,Object> context )
-        {
-            final IDynamicPreset basePreset = (IDynamicPreset) getPreset( getBasePresetId() );
-            final IPreset resBasePreset = basePreset.resolve( context );
-            
-            if( resBasePreset == null )
-            {
-                return null;
-            }
-            else
-            {
-                final Set<IProjectFacetVersion> facets = createCombinedFacetSet( resBasePreset );
-                
-                return new StaticPreset( getId(), getPluginId(), getLabel(), getDescription(), 
-                                         getBasePresetId(), facets );
-            }
-        }
-    }
-    
-    private static final class DynamicPreset
-    
-        implements IDynamicPreset
-        
-    {
-        private final String id;
-        private final String pluginId;
-        private final String factoryClassName;
-        
-        public DynamicPreset( final String id,
-                              final String pluginId,
-                              final String factoryClassName )
-        {
-            this.id = id;
-            this.pluginId = pluginId;
-            this.factoryClassName = factoryClassName;
-        }
-
-        public String getId()
-        {
-            return this.id;
-        }
-        
-        public Type getType()
-        {
-            return Type.DYNAMIC;
-        }
-
-        public String getLabel()
-        {
-            return this.id;
-        }
-
-        public String getDescription()
-        {
-            return ""; //$NON-NLS-1$
-        }
-
-        public Set<IProjectFacetVersion> getProjectFacets()
-        {
-            return Collections.emptySet();
-        }
-
-        public boolean isUserDefined()
-        {
-            return false;
-        }
-        
-        public IPreset resolve( final Map<String,Object> context )
-        {
-            final IPresetFactory factory
-                = instantiate( this.pluginId, this.factoryClassName, IPresetFactory.class );
-            
-            if( factory != null )
-            {
-                PresetDefinition def = null;
-                
-                try
-                {
-                    def = factory.createPreset( this.id, context );
-                }
-                catch( Exception e )
-                {
-                    final String msg 
-                        = Resources.bind( Resources.failedWhileInvokingPresetFactory, 
-                                          this.pluginId );
-                    
-                    log( createErrorStatus( msg, e ) );
-                }
-                
-                if( def != null )
-                {
-                    final StaticPreset staticPreset
-                        = new StaticPreset( this.id, this.pluginId, def.getLabel(), 
-                                            def.getDescription(), null, def.getProjectFacets() );
-                    
-                    return staticPreset;
-                }
-            }
-            
-            return null;
-        }
-        
-        public String toString()
-        {
-            return this.id;
-        }
-    }
-    
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String presetUsesUnknownFacet;
-        public static String presetUsesUnknownFacetVersion;
-        public static String basePresetNotFound;
-        public static String cycleDetected;
-        public static String failedWhileInvokingPresetFactory;
-        
-        static
-        {
-            initializeMessages( PresetsExtensionPoint.class.getName(), Resources.class );
-        }
-        
-        public static String bind( final String template,
-                                   final Object arg1,
-                                   final Object arg2,
-                                   final Object arg3 )
-        {
-            return NLS.bind( template, new Object[] { arg1, arg2, arg3 } );
-        }
-
-        public static String bind( final String template,
-                                   final Object arg1,
-                                   final Object arg2,
-                                   final Object arg3,
-                                   final Object arg4 )
-        {
-            return NLS.bind( template, new Object[] { arg1, arg2, arg3, arg4 } );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/PresetsExtensionPoint.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/PresetsExtensionPoint.properties
deleted file mode 100644
index c4ef67e..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/PresetsExtensionPoint.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-presetUsesUnknownFacet = Preset {0} in plugin {1} uses unknown facet "{2}".
-presetUsesUnknownFacetVersion = Preset {0} in plugin {1} uses unknown version "{3}" of facet "{2}".
-basePresetNotFound = Preset {0} in plugin {1} specifies base preset "{2}" which does not exist.
-cycleDetected = Cycle detected among these presets: {0}
-failedWhileInvokingPresetFactory = Failed while invoking preset factory "{0}".
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProblemLog.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProblemLog.java
deleted file mode 100644
index 5643b70..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProblemLog.java
+++ /dev/null
@@ -1,218 +0,0 @@
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.util.EnumSet;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-
-public final class ProblemLog 
-{
-    public enum ProblemCase
-    {            
-        FACET_NOT_DEFINED( "facet-not-defined" ), //$NON-NLS-1$
-        FACET_VERSION_NOT_DEFINED( "facet-version-not-defined" ), //$NON-NLS-1$
-        GROUP_NOT_DEFINED( "group-not-defined" ), //$NON-NLS-1$
-        RUNTIME_COMPONENT_TYPE_NOT_DEFINED( "runtime-component-type-not-defined" ), //$NON-NLS-1$
-        RUNTIME_COMPONENT_VERSION_NOT_DEFINED( "runtime-component-version-not-defined" ); //$NON-NLS-1$
-        
-        private String str;
-        
-        private ProblemCase( final String str )
-        {
-            this.str = str;
-        }
-        
-        public String toString()
-        {
-            return this.str;
-        }
-    }
-
-    public static final class Policy
-    {
-        private final EnumSet<ProblemCase> problemCases;
-        
-        public Policy()
-        {
-            this.problemCases = EnumSet.allOf( ProblemCase.class );
-            
-            for( ProblemCase problemCase : ProblemCase.values() )
-            {
-                this.problemCases.add( problemCase );
-            }
-        }
-        
-        public static Policy createBasedOnIgnoreProblemsAttr( final IConfigurationElement element )
-        {
-            return createBasedOnIgnoreProblemsAttr( element, DEFAULT_POLICY );
-        }
-        
-        public static Policy createBasedOnIgnoreProblemsAttr( final IConfigurationElement element,
-                                                              final Policy defaultProblemLoggingPolicy )
-        {
-            final String enabledWhenAttrValue = element.getAttribute( "ignore-problems" ); //$NON-NLS-1$
-            
-            if( enabledWhenAttrValue == null )
-            {
-                return defaultProblemLoggingPolicy;
-            }
-            else
-            {
-                final Policy policy = new Policy();
-            
-                for( String segment : enabledWhenAttrValue.split( "," ) ) //$NON-NLS-1$
-                {
-                    segment = segment.trim();
-                    
-                    boolean knownCase = false;
-                    
-                    if( segment.equalsIgnoreCase( NOT_DEFINED_WILDCARD ) )
-                    {
-                        policy.problemCases.remove( ProblemCase.FACET_NOT_DEFINED );
-                        policy.problemCases.remove( ProblemCase.FACET_VERSION_NOT_DEFINED );
-                        policy.problemCases.remove( ProblemCase.GROUP_NOT_DEFINED );
-                        policy.problemCases.remove( ProblemCase.RUNTIME_COMPONENT_TYPE_NOT_DEFINED );
-                        policy.problemCases.remove( ProblemCase.RUNTIME_COMPONENT_VERSION_NOT_DEFINED );
-                        
-                        knownCase = true;
-                    }
-                    else
-                    {
-                        for( ProblemCase problemCase : ProblemCase.values() )
-                        {
-                            if( segment.equalsIgnoreCase( problemCase.toString() ) )
-                            {
-                                policy.problemCases.remove( problemCase );
-                                knownCase = true;
-                                break;
-                            }
-                        }
-                    }
-                    
-                    if( ! knownCase )
-                    {
-                        final String msg
-                            = NLS.bind( Resources.problemCaseNotRecognized, segment ) +
-                              NLS.bind( Resources.usedInPlugin, element.getContributor().getName() );
-                        
-                        FacetCorePlugin.logWarning( msg, true );
-                    }
-                }
-                
-                return policy;
-            }
-        }
-        
-        public boolean isLoggingEnabled( final ProblemCase problemCase )
-        {
-            return this.problemCases.contains( problemCase );
-        }
-    }
-
-    private static final String NOT_DEFINED_WILDCARD = "not-defined"; //$NON-NLS-1$
-    
-    public static final Policy DEFAULT_POLICY = new Policy();
-    
-    public static void reportMissingFacet( final String fid,
-                                           final String plugin )
-    {
-        reportMissingFacet( fid, plugin, DEFAULT_POLICY );
-    }
-
-    public static void reportMissingFacet( final String fid,
-                                           final String plugin,
-                                           final Policy policy )
-    {
-        if( policy.isLoggingEnabled( ProblemCase.FACET_NOT_DEFINED ) )
-        {
-            final String msg
-                = NLS.bind( Resources.facetNotDefined, fid ) +
-                  NLS.bind( Resources.usedInPlugin, plugin );
-            
-            FacetCorePlugin.logError( msg, true );
-        }
-    }
-    
-    public static void reportMissingFacetVersion( final IProjectFacet facet,
-                                                  final String version,
-                                                  final String plugin )
-    {
-        reportMissingFacetVersion( facet, version, plugin, DEFAULT_POLICY );
-    }
-
-    public static void reportMissingFacetVersion( final IProjectFacet facet,
-                                                  final String version,
-                                                  final String plugin,
-                                                  final Policy policy )
-    {
-        if( policy.isLoggingEnabled( ProblemCase.FACET_VERSION_NOT_DEFINED ) )
-        {
-            final String msg
-                = NLS.bind( Resources.facetVersionNotDefined, facet.getId(), version ) +
-                  NLS.bind( Resources.usedInPlugin, plugin );
-            
-            FacetCorePlugin.logError( msg, true );
-        }
-    }
-
-    public static void reportMissingGroup( final String groupId,
-                                           final String pluginId )
-    {
-        reportMissingGroup( groupId, pluginId, DEFAULT_POLICY );
-    }
-
-    public static void reportMissingGroup( final String groupId,
-                                           final String pluginId,
-                                           final Policy policy )
-    {
-        if( policy.isLoggingEnabled( ProblemCase.GROUP_NOT_DEFINED ) )
-        {
-            final String msg
-                = NLS.bind( Resources.groupNotDefined, groupId ) +
-                  NLS.bind( Resources.usedInPlugin, pluginId );
-            
-            FacetCorePlugin.logError( msg, true );
-        }
-    }
-    
-    public static void reportMissingRuntimeComponentType( final String rct,
-                                                          final String plugin )
-    {
-        reportMissingRuntimeComponentType( rct, plugin, DEFAULT_POLICY );
-    }
-
-    public static void reportMissingRuntimeComponentType( final String rct,
-                                                          final String plugin,
-                                                          final Policy policy )
-    {
-        if( policy.isLoggingEnabled( ProblemCase.RUNTIME_COMPONENT_TYPE_NOT_DEFINED ) )
-        {
-            final String msg
-                = NLS.bind( Resources.runtimeComponentTypeNotDefined, rct ) +
-                  NLS.bind( Resources.usedInPlugin, plugin );
-            
-            FacetCorePlugin.logError( msg, true );
-        }
-    }
-    
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String problemCaseNotRecognized;
-        public static String facetNotDefined;
-        public static String facetVersionNotDefined;
-        public static String groupNotDefined;
-        public static String runtimeComponentTypeNotDefined;
-        public static String usedInPlugin;
-        
-        static
-        {
-            initializeMessages( FacetedProjectFrameworkImpl.class.getName(), 
-                                Resources.class );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProblemLog.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProblemLog.properties
deleted file mode 100644
index abf9833..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProblemLog.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-problemCaseNotRecognized = Problem case {0} is not recognized.
-facetNotDefined = Project facet {0} has not been defined.
-facetVersionNotDefined = Version {1} of project facet {0} does not exist.
-groupNotDefined = Project facet group {0} has not been defined.
-runtimeComponentTypeNotDefined = Runtime component type {0} has not been defined.
-usedInPlugin = \ It is used in plugin {0}.
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacet.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacet.java
deleted file mode 100644
index 702d17d..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacet.java
+++ /dev/null
@@ -1,258 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import static org.eclipse.wst.common.project.facet.core.util.internal.MiscUtil.equal;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.IActionDefinition;
-import org.eclipse.wst.common.project.facet.core.ICategory;
-import org.eclipse.wst.common.project.facet.core.IDefaultVersionProvider;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-import org.eclipse.wst.common.project.facet.core.util.internal.Versionable;
-
-/**
- * The implementation of the <code>IProjectFacet</code> interface.
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class ProjectFacet 
-
-    extends Versionable<IProjectFacetVersion>
-    implements IProjectFacet 
-    
-{
-    private String id;
-    private String plugin;
-    private String label;
-    private String description;
-    private ICategory category;
-    private final List<IActionDefinition> actionDefinitions;
-    private IProjectFacetVersion defaultVersion;
-    private IDefaultVersionProvider defaultVersionProvider;
-    private final Map<String,Object> properties;
-    private final Map<String,Object> propertiesReadOnly;
-    
-    ProjectFacet() 
-    {
-        this.actionDefinitions = new ArrayList<IActionDefinition>();
-        this.properties = new HashMap<String,Object>();
-        this.propertiesReadOnly = Collections.unmodifiableMap( this.properties );
-    }
-    
-    public String getId() 
-    {
-        return this.id;
-    }
-    
-    void setId( final String id )
-    {
-        this.id = id;
-    }
-    
-    public String getPluginId()
-    {
-        return this.plugin;
-    }
-    
-    void setPluginId( final String plugin )
-    {
-        this.plugin = plugin;
-    }
-    
-    public String getLabel() 
-    {
-        return this.label;
-    }
-    
-    void setLabel( final String label )
-    {
-        this.label = label;
-    }
-
-    public String getDescription() 
-    {
-        return this.description;
-    }
-    
-    void setDescription( final String description )
-    {
-        this.description = description;
-    }
-    
-    public ICategory getCategory()
-    {
-        return this.category;
-    }
-    
-    void setCategory( final ICategory category )
-    {
-        this.category = category;
-    }
-    
-    void addVersion( final IProjectFacetVersion ver )
-    {
-        this.versions.add( ver.getVersionString(), ver );
-    }
-    
-    public IProjectFacetVersion getLatestSupportedVersion( final IRuntime r )
-    {
-        for( IProjectFacetVersion fv : getSortedVersions( false ) )
-        {
-            if( r.supports( fv ) )
-            {
-                return fv;
-            }
-        }
-        
-        return null;
-    }
-    
-    public IProjectFacetVersion getDefaultVersion()
-    {
-        IProjectFacetVersion defver = null;
-        
-        if( this.defaultVersionProvider != null )
-        {
-            try
-            {
-                defver = this.defaultVersionProvider.getDefaultVersion();
-            }
-            catch( Exception e )
-            {
-                FacetCorePlugin.log( e );
-            }
-            
-            if( defver != null )
-            {
-                if( defver.getProjectFacet() != this )
-                {
-                    final String msg
-                        = NLS.bind( Resources.versionProviderReturnedWrongVersion,
-                                    this.id );
-                    
-                    FacetCorePlugin.log( msg );
-
-                    defver = null;
-                }
-            }
-            
-            if( defver == null )
-            {
-                defver = getLatestVersion();
-            }
-            
-            return defver;
-        }
-        else
-        {
-            return this.defaultVersion;
-        }
-    }
-    
-    void setDefaultVersion( IProjectFacetVersion fv )
-    {
-        this.defaultVersion = fv;
-        this.defaultVersionProvider = null;
-    }
-    
-    void setDefaultVersionProvider( IDefaultVersionProvider provider )
-    {
-        this.defaultVersion = null;
-        this.defaultVersionProvider = provider;
-    }
-    
-    public Object getAdapter( final Class type )
-    {
-        return Platform.getAdapterManager().loadAdapter( this, type.getName() );
-    }
-    
-    public String createVersionNotFoundErrMsg( final String verstr )
-    {
-        return NLS.bind( FacetedProjectFrameworkImpl.Resources.facetVersionNotDefined,
-                         this.id, verstr );
-    }
-    
-    public Map<String,Object> getProperties()
-    {
-        return this.propertiesReadOnly;
-    }
-    
-    public Object getProperty( final String name )
-    {
-        return this.properties.get( name );
-    }
-
-    void setProperty( final String name,
-                      final Object value )
-    {
-        this.properties.put( name, value );
-    }
-    
-    public boolean isVersionHidden()
-    {
-        return ( this.versions.size() == 1 &&
-                 equal( getProperty( PROP_HIDE_VERSION ), true ) );
-    }
-    
-    public String toString()
-    {
-        return this.label;
-    }
-    
-    Set<IActionDefinition> getActionDefinitions( final IProjectFacetVersion fv )
-    {
-        final Set<IActionDefinition> result = new HashSet<IActionDefinition>();
-        
-        for( IActionDefinition def : this.actionDefinitions )
-        {
-            if( def.getVersionExpr().check( fv ) )
-            {
-                result.add( def );
-            }
-        }
-        
-        return result;
-    }
-    
-    void addActionDefinition( final ActionDefinition actionDefinition )
-    {
-        this.actionDefinitions.add( actionDefinition );
-    }
-    
-    public static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String versionProviderReturnedWrongVersion;
-        
-        static
-        {
-            initializeMessages( ProjectFacet.class.getName(), 
-                                Resources.class );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacet.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacet.properties
deleted file mode 100644
index f7e6f32..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacet.properties
+++ /dev/null
@@ -1 +0,0 @@
-versionProviderReturnedWrongVersion = Version provider for facet {0} returned version that does not belong to this facet.
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetPreferences.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetPreferences.java
deleted file mode 100644
index f3cc86a..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetPreferences.java
+++ /dev/null
@@ -1,440 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.util.TreeMap;
-
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.osgi.service.prefs.BackingStoreException;
-import org.osgi.service.prefs.Preferences;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class ProjectFacetPreferences
-
-    implements Preferences
-    
-{
-    private static final String PATH_SEPARATOR = "/"; //$NON-NLS-1$
-    
-    private final ProjectFacetPreferencesGroup group;
-    private final String facetId;
-    private final IProjectFacet facet;
-    private final IFacetedProject project;
-    private final ProjectFacetPreferences parent;
-    private final String name;
-    private final String absolutePath;
-    private final TreeMap<String,ProjectFacetPreferences> children;
-    private final TreeMap<String,String> attributes;
-    
-    public ProjectFacetPreferences( final ProjectFacetPreferencesGroup group,
-                                    final String facetId,
-                                    final IFacetedProject project )
-    {
-        this( group, facetId, toFacet( facetId ), project, null, PATH_SEPARATOR );
-    }
-    
-    public ProjectFacetPreferences( final ProjectFacetPreferencesGroup group,
-                                    final String facetId,
-                                    final IProjectFacet facet,
-                                    final IFacetedProject project,
-                                    final ProjectFacetPreferences parent,
-                                    final String name )
-    {
-        this.group = group;
-        this.facetId = facetId;
-        this.facet = facet;
-        this.project = project;
-        this.parent = parent;
-        this.name = name;
-        
-        this.absolutePath
-            = this.parent == null ? name : this.parent.absolutePath() + PATH_SEPARATOR + name;
-        
-        this.children = new TreeMap<String,ProjectFacetPreferences>();
-        this.attributes = new TreeMap<String,String>();
-    }
-    
-    public String getProjectFacetId()
-    {
-        return this.facetId;
-    }
-    
-    public IProjectFacet getProjectFacet()
-    {
-        return this.facet;
-    }
-    
-    public IFacetedProject getFacetedProject()
-    {
-        return this.project;
-    }
-    
-    public String name()
-    {
-        return this.name;
-    }
-
-    public String absolutePath()
-    {
-        return this.absolutePath;
-    }
-
-    public Preferences parent()
-    {
-        return this.parent();
-    }
-
-    public String[] childrenNames()
-    {
-        synchronized( this.group )
-        {
-            return this.children.keySet().toArray( new String[ this.children.size() ] );
-        }
-    }
-
-    public Preferences node( final String path )
-    {
-        synchronized( this.group )
-        {
-            return node( split( path ), 0 );
-        }
-    }
-    
-    private Preferences node( final String[] path,
-                              final int position )
-    {
-        final String segment = path[ position ];
-        ProjectFacetPreferences child = this.children.get( segment );
-        
-        if( child == null )
-        {
-            child = new ProjectFacetPreferences( this.group, this.facetId, this.facet, this.project, this, segment );
-            this.children.put( segment, child );
-        }
-        
-        if( position == path.length - 1 )
-        {
-            return child;
-        }
-        else
-        {
-            return child.node( path, position + 1 );
-        }
-    }
-
-    public boolean nodeExists( final String path )
-    {
-        synchronized( this.group )
-        {
-            return nodeExists( split( path ), 0 );
-        }
-    }
-
-    private boolean nodeExists( final String[] path,
-                                final int position )
-    {
-        final String segment = path[ position ];
-        ProjectFacetPreferences child = this.children.get( segment );
-        
-        if( child == null )
-        {
-            return false;
-        }
-        
-        if( position == path.length - 1 )
-        {
-            return true;
-        }
-        else
-        {
-            return child.nodeExists( path, position + 1 );
-        }
-    }
-
-    public void removeNode()
-    
-        throws BackingStoreException
-        
-    {
-        if( this.parent == null )
-        {
-            this.group.removePreferences( this.facet );
-        }
-        else
-        {
-            synchronized( this.group )
-            {
-                this.parent.children.remove( this.name );
-            }
-        }
-    }
-
-    public String[] keys()
-    {
-        synchronized( this.group )
-        {
-            return this.attributes.keySet().toArray( new String[ this.attributes.size() ] );
-        }
-    }
-
-    public String get( final String key,
-                       final String def )
-    {
-        synchronized( this.group )
-        {
-            String value = this.attributes.get( key );
-            
-            if( value == null )
-            {
-                value = def;
-            }
-            
-            return value;
-        }
-    }
-
-    public boolean getBoolean( final String key,
-                               final boolean def )
-    {
-        synchronized( this.group )
-        {
-            String value = this.attributes.get( key );
-            
-            if( value == null )
-            {
-                return def;
-            }
-            
-            return Boolean.parseBoolean( value );
-        }
-    }
-
-    public byte[] getByteArray( final String key,
-                                final byte[] def )
-    {
-        throw new UnsupportedOperationException();
-    }
-
-    public double getDouble( final String key,
-                             final double def )
-    {
-        synchronized( this.group )
-        {
-            final String value = this.attributes.get( key );
-            
-            if( value == null )
-            {
-                return def;
-            }
-            
-            try
-            {
-                return Double.parseDouble( value );
-            }
-            catch( NumberFormatException e )
-            {
-                return def;
-            }
-        }
-    }
-
-    public float getFloat( final String key,
-                           final float def )
-    {
-        synchronized( this.group )
-        {
-            final String value = this.attributes.get( key );
-            
-            if( value == null )
-            {
-                return def;
-            }
-            
-            try
-            {
-                return Float.parseFloat( value );
-            }
-            catch( NumberFormatException e )
-            {
-                return def;
-            }
-        }
-    }
-
-    public int getInt( final String key,
-                       final int def )
-    {
-        synchronized( this.group )
-        {
-            final String value = this.attributes.get( key );
-            
-            if( value == null )
-            {
-                return def;
-            }
-            
-            try
-            {
-                return Integer.parseInt( value );
-            }
-            catch( NumberFormatException e )
-            {
-                return def;
-            }
-        }
-    }
-
-    public long getLong( final String key,
-                         final long def )
-    {
-        synchronized( this.group )
-        {
-            final String value = this.attributes.get( key );
-            
-            if( value == null )
-            {
-                return def;
-            }
-            
-            try
-            {
-                return Long.parseLong( value );
-            }
-            catch( NumberFormatException e )
-            {
-                return def;
-            }
-        }
-    }
-
-    public void put( final String key,
-                     final String value )
-    {
-        synchronized( this.group )
-        {
-            if( value == null )
-            {
-                this.attributes.remove( key );
-            }
-            else
-            {
-                this.attributes.put( key, value );
-            }
-        }
-    }
-
-    public void putBoolean( final String key,
-                            final boolean value )
-    {
-        synchronized( this.group )
-        {
-            this.attributes.put( key, String.valueOf( value ) );
-        }
-    }
-
-    public void putByteArray( final String key,
-                              final byte[] value )
-    {
-        throw new UnsupportedOperationException();
-    }
-
-    public void putDouble( final String key,
-                           final double value )
-    {
-        synchronized( this.group )
-        {
-            this.attributes.put( key, String.valueOf( value ) );
-        }
-    }
-
-    public void putFloat( final String key,
-                          final float value )
-    {
-        synchronized( this.group )
-        {
-            this.attributes.put( key, String.valueOf( value ) );
-        }
-    }
-
-    public void putInt( final String key,
-                        final int value )
-    {
-        synchronized( this.group )
-        {
-            this.attributes.put( key, String.valueOf( value ) );
-        }
-    }
-
-    public void putLong( final String key,
-                         final long value )
-    {
-        synchronized( this.group )
-        {
-            this.attributes.put( key, String.valueOf( value ) );
-        }
-    }
-
-    public void remove( final String key )
-    {
-        synchronized( this.group )
-        {
-            this.attributes.remove( key );
-        }
-    }
-
-    public void clear()
-    {
-        synchronized( this.group )
-        {
-            this.attributes.clear();
-        }
-    }
-
-    public void flush()
-
-        throws BackingStoreException
-    
-    {
-        this.group.save();
-    }
-
-    public void sync()
-    
-        throws BackingStoreException
-        
-    {
-        flush();
-    }
-    
-    private static String[] split( final String path )
-    {
-        return path.split( PATH_SEPARATOR );
-    }
-    
-    private static IProjectFacet toFacet( final String facetId )
-    {
-        if( ProjectFacetsManager.isProjectFacetDefined( facetId ) )
-        {
-            return ProjectFacetsManager.getProjectFacet( facetId );
-        }
-        else
-        {
-            return null;
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetPreferencesGroup.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetPreferencesGroup.java
deleted file mode 100644
index de3110c..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetPreferencesGroup.java
+++ /dev/null
@@ -1,304 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import static org.eclipse.wst.common.project.facet.core.util.internal.DomUtil.elements;
-import static org.eclipse.wst.common.project.facet.core.util.internal.DomUtil.root;
-
-import java.io.BufferedInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.io.StringWriter;
-import java.io.Writer;
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.util.internal.FileUtil;
-import org.eclipse.wst.common.project.facet.core.util.internal.XmlWriter;
-import org.osgi.service.prefs.BackingStoreException;
-import org.osgi.service.prefs.Preferences;
-import org.w3c.dom.Element;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class ProjectFacetPreferencesGroup
-{
-    private static final String PATH_IN_PROJECT 
-        = ".settings/org.eclipse.wst.common.project.facet.core.prefs.xml"; //$NON-NLS-1$
-    
-    private static final String PATH_IN_WORKSPACE 
-        = ".metadata/.plugins/org.eclipse.wst.common.project.facet.core/prefs.xml"; //$NON-NLS-1$
-    
-    private static final String EL_ROOT = "root"; //$NON-NLS-1$
-    private static final String EL_FACET = "facet"; //$NON-NLS-1$
-    private static final String EL_NODE = "node"; //$NON-NLS-1$
-    private static final String EL_ATTRIBUTE = "attribute"; //$NON-NLS-1$
-    private static final String ATTR_ID = "id"; //$NON-NLS-1$
-    private static final String ATTR_NAME = "name"; //$NON-NLS-1$
-    private static final String ATTR_VALUE = "value"; //$NON-NLS-1$
-    
-    private final IFacetedProject project;
-    private final LinkedHashMap<String,ProjectFacetPreferences> preferences;
-    
-    public ProjectFacetPreferencesGroup( final IFacetedProject project )
-    
-        throws BackingStoreException
-        
-    {
-        this.project = project;
-        this.preferences = new LinkedHashMap<String,ProjectFacetPreferences>();
-        
-        final InputStream in = getBackingFileContents();
-        
-        if( in != null )
-        {
-            try
-            {
-                final Reader reader
-                    = new InputStreamReader( new BufferedInputStream( in ), XmlWriter.ENCODING );
-                
-                for( Element elFacet : elements( root( reader ), EL_FACET ) )
-                {
-                    final String facetId = elFacet.getAttribute( ATTR_ID );
-                    final ProjectFacetPreferences root = new ProjectFacetPreferences( this, facetId, project );
-                    
-                    read( root, elFacet );
-                    
-                    this.preferences.put( facetId, root );
-                }
-            }
-            catch( Exception e )
-            {
-                throw new BackingStoreException( e.getMessage(), e );
-            }
-            finally
-            {
-                try
-                {
-                    in.close();
-                }
-                catch( IOException e ) {}
-            }
-        }
-    }
-    
-    public ProjectFacetPreferences getPreferences( final IProjectFacet facet )
-    
-        throws BackingStoreException
-        
-    {
-        ProjectFacetPreferences prefs;
-        
-        synchronized( this )
-        {
-            final String facetId = facet.getId();
-            prefs = this.preferences.get( facetId );
-            
-            if( prefs == null )
-            {
-                prefs = new ProjectFacetPreferences( this, facetId, this.project );
-                this.preferences.put( facetId, prefs );
-            }
-        }
-        
-        return prefs;
-    }
-    
-    public void removePreferences( final IProjectFacet facet )
-    
-        throws BackingStoreException
-        
-    {
-        synchronized( this )
-        {
-            this.preferences.remove( facet.getId() );
-        }
-        
-        save();
-    }
-    
-    public void save()
-    
-        throws BackingStoreException
-        
-    {
-        try
-        {
-            final File file = getBackingFile();
-            StringWriter w = null;
-            
-            synchronized( this )
-            {
-                if( ! this.preferences.isEmpty() )
-                {
-                    w = new StringWriter();;
-                    write( w );
-                }
-            }
-            
-            if( w == null )
-            {
-                FileUtil.deleteFile( file );
-            }
-            else
-            {
-                FileUtil.writeFile( file, w.toString() );
-            }
-        }
-        catch( IOException e )
-        {
-            throw new BackingStoreException( e.getMessage(), e );
-        }
-        catch( CoreException e )
-        {
-            throw new BackingStoreException( e.getMessage(), e );
-        }
-    }
-    
-    private File getBackingFile()
-    {
-        final File file;
-        
-        if( this.project != null )
-        {
-            final IFile f = this.project.getProject().getFile( PATH_IN_PROJECT );
-            file = f.getLocation().toFile();
-        }
-        else
-        {
-            final File wsroot = ResourcesPlugin.getWorkspace().getRoot().getLocation().toFile();
-            file = new File( wsroot, PATH_IN_WORKSPACE );
-        }
-        
-        return file;
-    }
-    
-    private InputStream getBackingFileContents()
-    
-        throws BackingStoreException
-        
-    {
-        InputStream in = null;
-        
-        if( this.project != null )
-        {
-            final IFile f = this.project.getProject().getFile( PATH_IN_PROJECT );
-            
-            if( f.exists() )
-            {
-                try
-                {
-                    in = f.getContents();
-                }
-                catch( CoreException e )
-                {
-                    throw new BackingStoreException( e.getMessage(), e );
-                }
-            }
-        }
-        else
-        {
-            final File wsroot = ResourcesPlugin.getWorkspace().getRoot().getLocation().toFile();
-            final File file = new File( wsroot, PATH_IN_WORKSPACE );
-            
-            if( file.exists() )
-            {
-                try
-                {
-                    in = new FileInputStream( file );
-                }
-                catch( IOException e )
-                {
-                    throw new BackingStoreException( e.getMessage(), e );
-                }
-            }
-        }
-        
-        return in;
-    }
-    
-    private void read( final ProjectFacetPreferences preferences,
-                       final Element node )
-    {
-        for( Element elAttr : elements( node, EL_ATTRIBUTE ) )
-        {
-            final String name = elAttr.getAttribute( ATTR_NAME );
-            final String value = elAttr.getAttribute( ATTR_VALUE );
-            preferences.put( name, value );
-        }
-        
-        for( Element elNode : elements( node, EL_NODE ) )
-        {
-            final String name = elNode.getAttribute( ATTR_NAME );
-            final ProjectFacetPreferences child = (ProjectFacetPreferences) preferences.node( name );
-            read( child, elNode );
-        }
-    }
-    
-    private void write( final Writer w )
-    
-        throws IOException, BackingStoreException
-        
-    {
-        final XmlWriter xml = new XmlWriter( w );
-        
-        xml.startElement( EL_ROOT );
-        
-        for( Map.Entry<String,ProjectFacetPreferences> entry : this.preferences.entrySet() )
-        {
-            xml.startElement( EL_FACET );
-            xml.addAttribute( ATTR_ID, entry.getKey() );
-            write( xml, entry.getValue() );
-            xml.endElement();
-        }
-        
-        xml.endElement();
-        xml.flush();
-    }
-    
-    private void write( final XmlWriter xml,
-                        final Preferences preferences )
-    
-        throws IOException, BackingStoreException
-        
-    {
-        for( String key : preferences.keys() )
-        {
-            xml.startElement( EL_ATTRIBUTE );
-            xml.addAttribute( ATTR_NAME, key );
-            xml.addAttribute( ATTR_VALUE, preferences.get( key, null ) );
-            xml.endElement();
-        }
-        
-        for( String childName : preferences.childrenNames() )
-        {
-            final Preferences child = preferences.node( childName );
-            
-            xml.startElement( EL_NODE );
-            xml.addAttribute( ATTR_NAME, child.name() );
-            write( xml, child );
-            xml.endElement();
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetRef.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetRef.java
deleted file mode 100644
index b0af10f..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetRef.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.reportMissingAttribute;
-
-import java.util.Collection;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.IVersionExpr;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.common.project.facet.core.util.internal.VersionExpr;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class ProjectFacetRef
-{
-    private static final String ATTR_ID = "id"; //$NON-NLS-1$
-    private static final String ATTR_VERSION = "version"; //$NON-NLS-1$
-    
-    private final IProjectFacet f;
-    private final VersionExpr<IProjectFacetVersion> vexpr;
-    
-    @SuppressWarnings( "unchecked" )
-    public ProjectFacetRef( final IProjectFacet f,
-                            final IVersionExpr vexpr )
-    {
-        this( f, (VersionExpr<IProjectFacetVersion>) vexpr );
-    }
-
-    public ProjectFacetRef( final IProjectFacet f,
-                            final VersionExpr<IProjectFacetVersion> vexpr )
-    {
-        this.f = f;
-        this.vexpr = vexpr;
-    }
-    
-    public IProjectFacet getProjectFacet()
-    {
-        return this.f;
-    }
-    
-    public IVersionExpr getVersionExpr()
-    {
-        return this.vexpr;
-    }
-    
-    public boolean hasVersionExpr()
-    {
-        return ( this.vexpr != null );
-    }
-    
-    public boolean check( final IProjectFacetVersion fv )
-    {
-        if( this.f == fv.getProjectFacet() )
-        {
-            if( this.vexpr != null )
-            {
-                return this.vexpr.check( fv );
-            }
-            else
-            {
-                return true;
-            }
-        }
-        else
-        {
-            return false;
-        }
-    }
-
-    public boolean check( final Collection<IProjectFacetVersion> facets )
-    {
-        for( IProjectFacetVersion fv : facets )
-        {
-            if( check( fv ) )
-            {
-                return true;
-            }
-        }
-        
-        return false;
-    }
-    
-    public static ProjectFacetRef read( final IConfigurationElement config )
-    {
-        final String id = config.getAttribute( ATTR_ID );
-
-        if( id == null )
-        {
-            reportMissingAttribute( config, ATTR_ID );
-            return null;
-        }
-        
-        if( ! ProjectFacetsManager.isProjectFacetDefined( id ) )
-        {
-            ProblemLog.reportMissingFacet( id, config.getContributor().getName() );
-            return null;
-        }
-        
-        final IProjectFacet f = ProjectFacetsManager.getProjectFacet( id );
-        
-        final String v = config.getAttribute( ATTR_VERSION );
-        VersionExpr<ProjectFacetVersion> vexpr = null;
-        
-        if( v != null )
-        {
-            try
-            {
-                final String pluginId = config.getContributor().getName();
-                vexpr = new VersionExpr<ProjectFacetVersion>( f, v, pluginId );
-            }
-            catch( CoreException e )
-            {
-                FacetCorePlugin.log( e.getStatus() );
-                return null;
-            }
-        }
-        
-        return new ProjectFacetRef( f, vexpr );
-    }
-    
-    public String toString()
-    {
-        if( this.vexpr == null || ( (ProjectFacet) this.f ).isVersionHidden() )
-        {
-            return this.f.getLabel();
-        }
-        else if( this.vexpr.isSingleVersionMatch() )
-        {
-            return NLS.bind( Resources.exactVersion, this.f.getLabel(),
-                             this.vexpr.toString() );
-        }
-        else if( this.vexpr.isSimpleAllowNewer() )
-        {
-            return NLS.bind( Resources.allowNewer, this.f.getLabel(),
-                             this.vexpr.getFirstVersion() );
-        }
-        else if( this.vexpr.isWildcard() )
-        {
-            return NLS.bind( Resources.wildcard, this.f.getLabel() );
-        }
-        else
-        {
-            return NLS.bind( Resources.versionExpr, this.f.getLabel(),
-                             this.vexpr.toString() );
-        }
-    }
-
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String exactVersion;
-        public static String allowNewer;
-        public static String wildcard;
-        public static String versionExpr;
-        
-        static
-        {
-            initializeMessages( ProjectFacetRef.class.getName(), 
-                                Resources.class );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetRef.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetRef.properties
deleted file mode 100644
index 284c918..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetRef.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-exactVersion = {0} {1}
-allowNewer = {0} {1} or newer
-wildcard = any version of {0}
-versionExpr = {0} with version matching expression "{1}"
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetVersion.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetVersion.java
deleted file mode 100644
index ee81664..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetVersion.java
+++ /dev/null
@@ -1,577 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.IActionDefinition;
-import org.eclipse.wst.common.project.facet.core.IConstraint;
-import org.eclipse.wst.common.project.facet.core.IGroup;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.IVersion;
-import org.eclipse.wst.common.project.facet.core.IVersionExpr;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject.Action;
-import org.eclipse.wst.common.project.facet.core.util.internal.Versionable;
-
-/**
- * The implementation of the <code>IProjectFacetVersion</code> interface.
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class ProjectFacetVersion 
-
-    implements IProjectFacetVersion
-    
-{
-    private ProjectFacet facet;
-    private String version;
-    private IConstraint constraint;
-    private String plugin;
-    private Map<IProjectFacetVersion,Integer> compTable = Collections.emptyMap();
-    private final Map<String,Object> properties;
-    private final Map<String,Object> propertiesReadOnly;
-    
-    ProjectFacetVersion() 
-    {
-        this.properties = new HashMap<String,Object>();
-        this.propertiesReadOnly = Collections.unmodifiableMap( this.properties );
-    }
-    
-    public IProjectFacet getProjectFacet() 
-    {
-        return this.facet;
-    }
-    
-    void setProjectFacet( final ProjectFacet facet )
-    {
-        this.facet = facet;
-    }
-
-    public String getVersionString() 
-    {
-        return this.version;
-    }
-    
-    void setVersionString( final String version )
-    {
-        this.version = version;
-    }
-    
-    public Versionable<IProjectFacetVersion> getVersionable()
-    {
-        return this.facet;
-    }
-
-    public IConstraint getConstraint()
-    {
-        if( this.constraint == null )
-        {
-            this.constraint = new Constraint( this, IConstraint.Type.AND, new Object[ 0 ] );
-        }
-        
-        return this.constraint;
-    }
-    
-    void setConstraint( final IConstraint constraint )
-    {
-        this.constraint = constraint;
-    }
-    
-    public String getPluginId()
-    {
-        return this.plugin;
-    }
-    
-    void setPluginId( final String plugin )
-    {
-        this.plugin = plugin;
-    }
-    
-    void setComparisonTable( final Map<IProjectFacetVersion,Integer> compTable )
-    {
-        this.compTable = compTable;
-    }
-    
-    public boolean supports( final Set<IProjectFacetVersion> base,
-                             final Action.Type type )
-    {
-        try
-        {
-            return ( getActionDefinitionInternal( base, type ) != null );
-        }
-        catch( CoreException e )
-        {
-            FacetCorePlugin.log( e );
-            return false;
-        }
-    }
-    
-    /**
-     * @deprecated
-     */
-    
-    public boolean supports( final Action.Type type )
-    {
-        try
-        {
-            return getActionDefinition( type ) != null;
-        }
-        catch( CoreException e )
-        {
-            FacetCorePlugin.log( e );
-            return false;
-        }
-    }
-    
-    public Set<IActionDefinition> getActionDefinitions()
-    {
-        return this.facet.getActionDefinitions( this );
-    }
-    
-    public Set<IActionDefinition> getActionDefinitions( final Action.Type type )
-    {
-        final Set<IActionDefinition> result = new HashSet<IActionDefinition>();
-        
-        for( IActionDefinition def : getActionDefinitions() )
-        {
-            if( def.getActionType() == type )
-            {
-                result.add( def );
-            }
-        }
-
-        if( result.size() > 1 && type != Action.Type.VERSION_CHANGE )
-        {
-            final String msg
-                = Resources.bind( Resources.multipleActionDefinitions,
-                                  this.facet.getId(), this.version,
-                                  type.toString() );
-            
-            FacetCorePlugin.logWarning( msg, true );
-        }
-        
-        return result;
-    }
-    
-    public IActionDefinition getActionDefinition( final Set<IProjectFacetVersion> base,
-                                                  final Action.Type type )
-    
-        throws CoreException
-        
-    {
-        final IActionDefinition def = getActionDefinitionInternal( base, type );
-        
-        if( def == null )
-        {
-            final String msg 
-                = NLS.bind( Resources.actionNotSupported, toString(), 
-                            type.toString() );
-            
-            throw new CoreException( FacetCorePlugin.createErrorStatus( msg ) );
-        }
-        
-        return def;
-    }
-    
-    private IActionDefinition getActionDefinitionInternal( final Set<IProjectFacetVersion> base,
-                                                           final Action.Type type )
-    
-        throws CoreException
-        
-    {
-        final Set<IActionDefinition> definitions = getActionDefinitions( type );
-        
-        if( definitions.size() > 0 )
-        {
-            if( type == Action.Type.VERSION_CHANGE )
-            {
-                IProjectFacetVersion fromVersion = null;
-                
-                for( IProjectFacetVersion x : base )
-                {
-                    if( x.getProjectFacet() == this.facet )
-                    {
-                        fromVersion = x;
-                        break;
-                    }
-                }
-                
-                if( fromVersion != null )
-                {
-                    for( IActionDefinition def : definitions )
-                    {
-                        final IVersionExpr vexpr 
-                            = (IVersionExpr) def.getProperty( IActionDefinition.PROP_FROM_VERSIONS );
-                        
-                        if( vexpr == null || vexpr.check( fromVersion ) )
-                        {
-                            return def;
-                        }
-                    }
-                }
-            }
-            else
-            {
-                return definitions.iterator().next();
-            }
-        }
-
-        return null;
-    }
-    
-    /**
-     * @deprecated
-     */
-    
-    @SuppressWarnings( "unchecked" )
-    public IActionDefinition getActionDefinition( final Action.Type type )
-    
-        throws CoreException
-        
-    {
-        final Set definitions = getActionDefinitions( type );
-        
-        if( definitions.size() == 0 )
-        {
-            return null;
-        }
-        else
-        {
-            return (IActionDefinition) definitions.iterator().next();
-        }
-    }
-    
-    /**
-     * @deprecated
-     */
-    
-    public Object createActionConfig( final Action.Type type,
-                                      final String pjname )
-    
-        throws CoreException
-        
-    {
-        if( ! supports( type ) )
-        {
-            final String msg 
-                = NLS.bind( Resources.actionNotSupported, toString(), 
-                            type.toString() );
-            
-            throw new CoreException( FacetCorePlugin.createErrorStatus( msg ) );
-        }
-        
-        final IActionDefinition def = getActionDefinition( type );
-        
-        if( def == null )
-        {
-            return null;
-        }
-        else
-        {
-            return def.createConfigObject( this, pjname );
-        }
-    }
-    
-    /**
-     * @deprecated
-     */
-    
-    public boolean isSameActionConfig( final Action.Type type,
-                                       final IProjectFacetVersion fv )
-    
-        throws CoreException
-        
-    {
-        return ( (ProjectFacetVersion) fv ).getActionDefinition( type ) == getActionDefinition( type );
-    }
-    
-    public boolean isValidFor( final Set<IProjectFacet> fixed )
-    {
-        for( IProjectFacet f : fixed )
-        {
-            if( this.facet == f )
-            {
-                return true;
-            }
-        }
-        
-        for( IProjectFacet f : fixed )
-        {
-            if( f.getVersions().size() > 0 )
-            {
-                boolean conflictsWithAllVersions = true;
-    
-                for( IProjectFacetVersion fv : f.getVersions() )
-                {
-                    if( ! conflictsWith( fv ) )
-                    {
-                        conflictsWithAllVersions = false;
-                        break;
-                    }
-                }
-                
-                if( conflictsWithAllVersions )
-                {
-                    return false;
-                }
-            }
-        }
-        
-        return true;
-    }
-    
-    public boolean conflictsWith( final IProjectFacetVersion fv )
-    {
-        if( this == fv )
-        {
-            return false;
-        }
-        else if( this.facet == fv.getProjectFacet() )
-        {
-            return true;
-        }
-        else
-        {
-            return conflictsWith( fv, getConstraint() ) || 
-                   conflictsWith( this, fv.getConstraint() );
-        }
-    }
-    
-    private boolean conflictsWith( final IProjectFacetVersion fv,
-                                   final IConstraint op )
-    {
-        if( op.getType() == IConstraint.Type.AND )
-        {
-            for( Object operand : op.getOperands() )
-            {
-                if( conflictsWith( fv, (IConstraint) operand ) )
-                {
-                    return true;
-                }
-            }
-            
-            return false;
-        }
-        else if( op.getType() == IConstraint.Type.OR )
-        {
-            boolean allBranchesConflict = true;
-            
-            for( Object operand : op.getOperands() )
-            {
-                if( ! conflictsWith( fv, (IConstraint) operand ) )
-                {
-                    allBranchesConflict = false;
-                    break;
-                }
-            }
-            
-            return allBranchesConflict;
-        }
-        else if( op.getType() == IConstraint.Type.CONFLICTS )
-        {
-            final Object firstOperand = op.getOperand( 0 );
-            
-            if( firstOperand instanceof IGroup )
-            {
-                final IGroup group = (IGroup) firstOperand;
-                return group.getMembers().contains( fv );
-            }
-            else
-            {
-                final IProjectFacet f = (IProjectFacet) firstOperand;
-                final IVersionExpr vexpr = (IVersionExpr) op.getOperand( 1 );
-                
-                if( fv.getProjectFacet() == f )
-                {
-                    if( vexpr.check( fv ) )
-                    {
-                        return true;
-                    }
-                }
-                
-                return false;
-            }
-        }
-        else if( op.getType() == IConstraint.Type.REQUIRES )
-        {
-            final Boolean soft
-                = (Boolean) op.getOperand( op.getOperands().size() - 1 );
-        
-            if( soft.equals( Boolean.TRUE ) )
-            {
-                return false;
-            }
-            else
-            {
-                final Object firstOperand = op.getOperand( 0 );
-                boolean conflictsWithAll = true;
-                
-                if( firstOperand instanceof IGroup )
-                {
-                    final IGroup group = (IGroup) firstOperand;
-                    
-                    for( IProjectFacetVersion member : group.getMembers() )
-                    {
-                        if( ! member.conflictsWith( fv ) )
-                        {
-                            conflictsWithAll = false;
-                            break;
-                        }
-                    }
-                }
-                else
-                {
-                    final IProjectFacet rf = (IProjectFacet) firstOperand;
-                    final IVersionExpr vexpr = (IVersionExpr) op.getOperand( 1 );
-                    
-                    try
-                    {
-                        final String vexprstr = vexpr.toString();
-                        
-                        for( IProjectFacetVersion rfv : rf.getVersions( vexprstr ) )
-                        {
-                            if( ! rfv.conflictsWith( fv ) )
-                            {
-                                conflictsWithAll = false;
-                                break;
-                            }
-                        }
-                    }
-                    catch( CoreException e )
-                    {
-                        FacetCorePlugin.log( e );
-                        return false;
-                    }
-                }
-                
-                return conflictsWithAll;
-            }
-        }
-        else
-        {
-            throw new IllegalStateException();
-        }
-    }
-    
-    public int compareTo( final Object obj )
-    {
-        if( obj == this )
-        {
-            return 0;
-        }
-        
-        if( obj instanceof IProjectFacetVersion )
-        {
-            final IProjectFacetVersion fv = (IProjectFacetVersion) obj;
-            
-            if( fv.getProjectFacet() != this.facet )
-            {
-                final String msg
-                    = Resources.bind( Resources.cannotCompareVersionsOfDifferentFacets,
-                                      this.facet.getId(), this.version,
-                                      fv.getProjectFacet().getId(), 
-                                      fv.getVersionString() );
-                
-                throw new RuntimeException( msg );
-            }
-            
-            final Integer cachedResult = this.compTable.get( fv );
-            
-            if( cachedResult != null )
-            {
-                return cachedResult.intValue();
-            }
-        }
-
-        try
-        {
-            final Comparator<String> comp = this.facet.getVersionComparator();
-            return comp.compare( this.version, ( (IVersion) obj ).getVersionString() );
-        }
-        catch( Exception e )
-        {
-            FacetCorePlugin.log( e );
-            return 0;
-        }
-    }
-    
-    public Map<String,Object> getProperties()
-    {
-        return this.propertiesReadOnly;
-    }
-    
-    public Object getProperty( final String name )
-    {
-        return this.properties.get( name );
-    }
-
-    void setProperty( final String name,
-                      final Object value )
-    {
-        this.properties.put( name, value );
-    }
-    
-    public String toString()
-    {
-        if( this.facet.isVersionHidden() )
-        {
-            return this.facet.getLabel();
-        }
-        else
-        {
-            return this.facet.getLabel() + " " + this.version; //$NON-NLS-1$
-        }
-    }
-    
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String actionNotSupported;
-        public static String multipleActionDefinitions;
-        public static String cannotCompareVersionsOfDifferentFacets;
-        
-        static
-        {
-            initializeMessages( ProjectFacetVersion.class.getName(), 
-                                Resources.class );
-        }
-        
-        public static String bind( final String template,
-                                   final Object arg1,
-                                   final Object arg2,
-                                   final Object arg3 )
-        {
-            return NLS.bind( template, new Object[] { arg1, arg2, arg3 } );
-        }
-
-        public static String bind( final String template,
-                                   final Object arg1,
-                                   final Object arg2,
-                                   final Object arg3,
-                                   final Object arg4 )
-        {
-            return NLS.bind( template, new Object[] { arg1, arg2, arg3, arg4 } );
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetVersion.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetVersion.properties
deleted file mode 100644
index fe7b2b9..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetVersion.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-actionNotSupported = Project facet {0} does not support action type {1}.
-multipleActionDefinitions = More than one declaration found for action type {2} of projet facet {0} {1}.
-
-cannotCompareVersionsOfDifferentFacets = \
-  Cannot compare versions of different facets to each other. Attempted to \
-  compare version {1} of facet {0} with version {3} of facet {2}. 
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/RuntimeComponentTypeRef.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/RuntimeComponentTypeRef.java
deleted file mode 100644
index 78821c4..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/RuntimeComponentTypeRef.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.reportMissingAttribute;
-
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.wst.common.project.facet.core.IVersionExpr;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponentType;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponentVersion;
-import org.eclipse.wst.common.project.facet.core.runtime.RuntimeManager;
-import org.eclipse.wst.common.project.facet.core.runtime.internal.RuntimeComponentVersion;
-import org.eclipse.wst.common.project.facet.core.util.internal.VersionExpr;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class RuntimeComponentTypeRef
-{
-    private static final String ATTR_ID = "id"; //$NON-NLS-1$
-    private static final String ATTR_VERSION = "version"; //$NON-NLS-1$
-    
-    private final IRuntimeComponentType rct;
-    private final VersionExpr<IRuntimeComponentVersion> vexpr;
-    
-    @SuppressWarnings( "unchecked" )
-    public RuntimeComponentTypeRef( final IRuntimeComponentType rct,
-                                    final IVersionExpr vexpr )
-    {
-        this( rct, (VersionExpr<IRuntimeComponentVersion>) vexpr );
-    }
-
-    public RuntimeComponentTypeRef( final IRuntimeComponentType rct,
-                                    final VersionExpr<IRuntimeComponentVersion> vexpr )
-    {
-        this.rct = rct;
-        this.vexpr = vexpr;
-    }
-    
-    public boolean check( final Set<IRuntimeComponentVersion> rcvs )
-    {
-        for( IRuntimeComponentVersion rcv : rcvs )
-        {
-            if( this.rct == rcv.getRuntimeComponentType() )
-            {
-                if( this.vexpr != null )
-                {
-                    return this.vexpr.check( rcv );
-                }
-                else
-                {
-                    return true;
-                }
-            }
-        }
-        
-        return false;
-    }
-    
-    public static RuntimeComponentTypeRef read( final IConfigurationElement config )
-    {
-        return read( config, ProblemLog.DEFAULT_POLICY );
-    }
-    
-    public static RuntimeComponentTypeRef read( final IConfigurationElement config,
-                                                final ProblemLog.Policy problemLoggingPolicy )
-    {
-        final String pluginId = config.getContributor().getName();
-        final String id = config.getAttribute( ATTR_ID );
-
-        if( id == null )
-        {
-            reportMissingAttribute( config, ATTR_ID );
-            return null;
-        }
-        
-        if( ! RuntimeManager.isRuntimeComponentTypeDefined( id ) )
-        {
-            ProblemLog.reportMissingRuntimeComponentType( id, pluginId, problemLoggingPolicy );
-            return null;
-        }
-        
-        final IRuntimeComponentType rct = RuntimeManager.getRuntimeComponentType( id );
-        
-        final String v = config.getAttribute( ATTR_VERSION );
-        VersionExpr<RuntimeComponentVersion> vexpr = null;
-        
-        if( v != null )
-        {
-            try
-            {
-                vexpr = new VersionExpr<RuntimeComponentVersion>( rct, v, pluginId );
-            }
-            catch( CoreException e )
-            {
-                FacetCorePlugin.log( e.getStatus() );
-                return null;
-            }
-        }
-        
-        return new RuntimeComponentTypeRef( rct, vexpr );
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/UserPreset.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/UserPreset.java
deleted file mode 100644
index a09bf8e..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/UserPreset.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.wst.common.project.facet.core.IPreset;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * The implementation of the {@link IPreset} interface that's used for user-defined presets.
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class UserPreset
-
-    implements IPreset
-    
-{
-    private final String id;
-    private final String label;
-    private final String description;
-    private final Set<IProjectFacetVersion> facets;
-    
-    public UserPreset( final String id,
-                       final String label,
-                       final String description,
-                       final Set<IProjectFacetVersion> facets ) 
-    {
-        this.id = id;
-        this.label = label;
-        this.description = description;
-        this.facets = Collections.unmodifiableSet( new HashSet<IProjectFacetVersion>( facets ) );
-    }
-    
-    public String getId()
-    {
-        return this.id;
-    }
-    
-    public Type getType()
-    {
-        return Type.USER_DEFINED;
-    }
-
-    public String getLabel()
-    {
-        return this.label;
-    }
-    
-    public String getDescription()
-    {
-        return this.description;
-    }
-    
-    public Set<IProjectFacetVersion> getProjectFacets()
-    {
-        return this.facets;
-    }
-    
-    public boolean isUserDefined()
-    {
-        return false;
-    }
-    
-    public String toString()
-    {
-        return this.label;
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ValidationProblem.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ValidationProblem.java
deleted file mode 100644
index eedb872..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ValidationProblem.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.text.MessageFormat;
-import java.util.Arrays;
-
-import org.eclipse.core.runtime.Status;
-import org.eclipse.osgi.util.NLS;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class ValidationProblem 
-
-    extends Status
-    
-{
-    public static final class Type
-    {
-        public static final Type REQUIRES 
-            = new Type( Resources.requires );
-        
-        public static final Type REQUIRES_ONE_OF_TWO
-            = new Type( Resources.requiresOneOfTwo );
-        
-        public static final Type REQUIRES_GROUP
-            = new Type( Resources.requiresGroup );
-
-        public static final Type CONFLICTS 
-            = new Type( Resources.oneof );
-        
-        public static final Type COMPLEX 
-            = new Type( Resources.complex );
-        
-        public static final Type INSTALL_NOT_SUPPORTED 
-            = new Type( Resources.installNotSupported );
-        
-        public static final Type UNINSTALL_NOT_SUPPORTED 
-            = new Type( Resources.uninstallNotSupported );
-        
-        public static final Type VERSION_CHANGE_NOT_SUPPORTED 
-            = new Type( Resources.versionChangeNotSupported );
-
-        public static final Type MULTIPLE_ACTIONS_NOT_SUPPORTED 
-            = new Type( Resources.multipleActionsNotSupported );
-
-        public static final Type FACET_ALREADY_INSTALLED 
-            = new Type( Resources.facetAlreadyInstalled );
-
-        public static final Type CANNOT_UNINSTALL 
-            = new Type( Resources.cannotUninstall );
-
-        public static final Type CANNOT_CHANGE_VERSION
-            = new Type( Resources.cannotChangeVersion );
-        
-        public final String msg;
-        
-        private Type( final String msg ) 
-        {
-            this.msg = msg;
-        }
-
-        private String getMessageTemplate()
-        {
-            return this.msg;
-        }
-    }
-    
-    private final Type type;
-    private final Object[] params;
-    
-    public ValidationProblem( final Type type,
-                              final Object[] params )
-    {
-        super( ERROR, FacetCorePlugin.PLUGIN_ID, 0, format( type, params ), 
-               null );
-        
-        this.type = type;
-        this.params = params;
-    }
-    
-    public ValidationProblem( final Type type )
-    {
-        this( type, new Object[ 0 ] );
-    }
-
-    public ValidationProblem( final Type type,
-                              final Object param )
-    {
-        this( type, new Object[] { param } );
-    }
-    
-    public ValidationProblem( final Type type,
-                              final Object param1,
-                              final Object param2 )
-    {
-        this( type, new Object[] { param1, param2 } );
-    }
-
-    public ValidationProblem( final Type type,
-                              final Object param1,
-                              final Object param2,
-                              final Object param3 )
-    {
-        this( type, new Object[] { param1, param2, param3 } );
-    }
-    
-    public Type getType()
-    {
-        return this.type;
-    }
-    
-    public Object[] getParameters()
-    {
-        return this.params;
-    }
-
-    public boolean equals( final Object obj )
-    {
-        if( ! ( obj instanceof ValidationProblem ) )
-        {
-            return false;
-        }
-        else
-        {
-            final ValidationProblem prob = (ValidationProblem) obj;
-            
-            return this.type.equals( prob.type ) &&
-                   Arrays.equals( this.params, prob.params );
-        }
-    }
-    
-    public int hashCode()
-    {
-    	int hash = 0;
-        
-    	for( int i = 0; i < this.params.length; i++ ) 
-        {
-			hash = hash ^ this.params[ i ].hashCode();
-		}
-        
-        return this.type.hashCode() ^ hash;
-    }
-    
-    public String toString()
-    {
-        return getMessage();
-    }
-    
-    private static String format( final Type type,
-                                  final Object[] params )
-    {
-        return MessageFormat.format( type.getMessageTemplate(), params );
-    }
-    
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String requires;
-        public static String requiresOneOfTwo;
-        public static String requiresGroup;
-        public static String oneof;
-        public static String complex;
-        public static String installNotSupported;
-        public static String uninstallNotSupported;
-        public static String versionChangeNotSupported;
-        public static String multipleActionsNotSupported;
-        public static String facetAlreadyInstalled;
-        public static String cannotUninstall;
-        public static String cannotChangeVersion;
-        
-        static
-        {
-            initializeMessages( ValidationProblem.class.getName(), 
-                                Resources.class );
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ValidationProblem.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ValidationProblem.properties
deleted file mode 100644
index 1211000..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ValidationProblem.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-requires = {0} requires {1}.
-requiresOneOfTwo = {0} requires {1} or {2}.
-requiresGroup = {0} requires any member of {1}.
-oneof = {0} and {1} cannot both be selected.
-complex = Constraints for {0} have not been met.
-installNotSupported = {0} {1} cannot be installed.
-uninstallNotSupported = {0} {1} cannot be uninstalled.
-versionChangeNotSupported = Cannot change version of project facet {0} to {1}.
-multipleActionsNotSupported = Multiple actions on the same project facet are not supported in the same batch. The only exception is an uninstall of a previosly-installed version followed by an install of a new version.
-facetAlreadyInstalled = Cannot install project facet {0} {1}. Some version of this project facet is already installed.
-cannotUninstall = Cannot uninstall project facet {0} {1} because it has not been installed.
-cannotChangeVersion = Cannot change version of project facet {0} to {1} because no version of this project facet is currently installed.
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntime.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntime.java
deleted file mode 100644
index efc364e..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntime.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * Represents a configured instance of a runtime. A runtime instance is composed of multiple 
- * runtime components. 
- * 
- * <p>This interface is not intended to be implemented outside of this framework. Client code can 
- * get access to <code>IRuntime</code> objects by using methods on the {@link RuntimeManager} 
- * class.</p>  
- * 
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- * @see RuntimeManager#getRuntimes()
- * @see RuntimeManager#getRuntime(String)
- * @see RuntimeManager#isRuntimeDefined(String)
- * @see RuntimeManager#defineRuntime(String,List,Map)
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public interface IRuntime
-
-    extends IAdaptable
-    
-{
-    /**
-     * Returns the name of this runtime. The runtime name is unique within the workspace.
-     * 
-     * @return the name of this runtime
-     */
-    
-    String getName();
-    
-    /**
-     * Returns the localized name of this runtime. If not specified, this will default to the name
-     * of the runtime as returned by the {@link #getName()} method. 
-     * 
-     * <p>The localized name should be used in all communications with the user while all metadata 
-     * references to the runtime should use the unlocalized name. Note that there is an inherent 
-     * danger in this. If a runtime is deleted or renamed, existing projects that use that runtime 
-     * might become invalid. In that case the system will need to communicate that problem to the 
-     * user using the unlocalized name for the runtime. Since the user is never exposed to runtime's 
-     * unlocalized name, the user can have trouble understanding and correcting the problem. A
-     * similar situation can arise when a project is imported into another user's workspace.</p>
-     * 
-     * <p>To mitigate the above risks, the name localization feature is expected to be used 
-     * sparingly and only in contexts where the runtime provider can take steps to guarantee that
-     * the above situation is not likely to occur. One scenario where name localization is
-     * acceptable is when a runtime is auto-created and the user is not given ability to delete or
-     * rename it.</p>
-     * 
-     * @return the localized name of this runtime
-     */
-    
-    String getLocalizedName();
-    
-    /**
-     * Returns the set of other names (if any) that this runtime may be known by. The localized
-     * name (if specified) will be present in the alternate names set. 
-     * 
-     * @return the set of alternate names for this runtime or an empty set
-     * @since 3.0
-     */
-    
-    Set<String> getAlternateNames();
-    
-    /**
-     * Returns the runtime components that comprise this runtime. Note that the
-     * order is important since for some operations components are consoluted
-     * in order and the first one capable of performing the opeation wins.
-     *  
-     * @return the runtime components that comprise this runtime
-     */
-    
-    List<IRuntimeComponent> getRuntimeComponents();
-    
-    /**
-     * Returns the properties associated with this runtime component. The
-     * contents will vary dependending on how the runtime was created and what
-     * component types/versions it's comprised of.
-     * 
-     * @return the properties associated with this runtime
-     */
-    
-    Map<String,String> getProperties();
-    
-    /**
-     * Returns the value of the specified property.
-     * 
-     * @param name the property name
-     * @return the property value, or <code>null</code>
-     */
-    
-    String getProperty( String name );
-    
-    /**
-     * Determines whether this runtime supports the specified project facet.
-     * The runtime supports a project facet if any of it's components support
-     * the project facet. The support mappings are specified using the
-     * <code>org.eclipse.wst.common.project.facet.core.runtime</code> extension
-     * point.
-     * 
-     * @param fv the project facet version
-     * @return <code>true</code> if this runtime supports the specified facet,
-     *   <code>false</code> otherwise
-     */
-    
-    boolean supports( IProjectFacetVersion fv );
-    
-    boolean supports( IProjectFacet f );
-    
-    /**
-     * Returns the facets (and the versions) that should be selected by default 
-     * when this runtime is selected. This information is drawn from what's
-     * specified through the <code>org.eclipse.wst.common.project.facet.core.defaultFacets</code>
-     * extension point. The returned list is filtered by removing facets that
-     * would conflict with the specified fixed facets. Note that the returned 
-     * set will always include the fixed facets. If the default version for any 
-     * fixed facet is not explicitly specified through the above extension 
-     * point, the latest version will be used.
-     * 
-     * @param fixed the fixed facets
-     * @return the default facets
-     * @throws CoreException if failed for any reason
-     * @deprecated use IFacetedProjectWorkingCopy.getDefaultConfiguration() instead
-     */
-    
-    Set<IProjectFacetVersion> getDefaultFacets( final Set<IProjectFacet> fixed )
-    
-        throws CoreException;
-    
-    /**
-     * Performs a number of runtime-specific checks to determine whether this runtime
-     * instance is valid or not.
-     * 
-     * @param monitor used for getting progress information and canceling validation
-     * @return the result of validation
-     * @since 3.0
-     */
-    
-    IStatus validate( IProgressMonitor monitor );
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeBridge.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeBridge.java
deleted file mode 100644
index a358810..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeBridge.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-
-/**
- * The interface implemented by extensions wishing to expose runtimes defined
- * through other means to the project facets framework.
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public interface IRuntimeBridge
-{
-    /**
-     * Returns the set of names for runtimes that this bridge wants to export.
-     * The system will try to accommodate these name choices, but may have to
-     * disambiguate names due to collisions. However, even if the runtime name
-     * is changed, the name that will be passed into the {@link #bridge(String)}
-     * call will be the original name provided by this method call. 
-     * 
-     * @return the set of names for runtimes that this bridge wants to export
-     * @throws CoreException if failed while bridging
-     */
-    
-    Set<String> getExportedRuntimeNames()
-        
-        throws CoreException;
-    
-    /**
-     * Returns a stub that represents the bridged runtime. The system will
-     * wrap this stub and expose it to the clients through the {@link IRuntime}
-     * interface.
-     * 
-     * @param name the name of the bridged runtime (as returned by the
-     *   {@link #getExportedRuntimeNames()}) method
-     * @return a stub that represents the bridged runtime
-     * @throws CoreException if failed while bridging
-     */
-    
-    IStub bridge( String name )
-    
-        throws CoreException;
-    
-    /**
-     * Represents a single bridged runtime. The system will wrap this interface
-     * and expose it to clients as {@link IRuntime}. All relevant calls will be
-     * delegated to this interface.
-     * 
-     * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
-     */
-
-    public interface IStub
-    {
-        /**
-         * Returns the runtime components that comprise this runtime. Note that 
-         * the order is important since for some operations components are 
-         * consulted in order and the first one capable of performing the
-         * operation wins.
-         *  
-         * @return the runtime components that comprise this runtime
-         */
-        
-        List<IRuntimeComponent> getRuntimeComponents();
-        
-        /**
-         * Returns the properties associated with this runtime component. The
-         * contents will vary depending on how the runtime was created and 
-         * what component types/versions it's comprised of.
-         * 
-         * @return the properties associated with this runtime
-         */
-        
-        Map<String,String> getProperties();
-    }
-    
-    /**
-     * Represents a single bridged runtime. The system will wrap this interface
-     * and expose it to clients as {@link IRuntime}. All relevant calls will be
-     * delegated to this interface.
-     * 
-     * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
-     * @since 3.0
-     */
-
-    public abstract class Stub
-    
-        implements IStub
-        
-    {
-        /**
-         * Returns the runtime components that comprise this runtime. Note that 
-         * the order is important since for some operations components are 
-         * consulted in order and the first one capable of performing the
-         * operation wins.
-         *  
-         * @return the runtime components that comprise this runtime
-         * @since 3.0
-         */
-        
-        public abstract List<IRuntimeComponent> getRuntimeComponents();
-        
-        /**
-         * Returns the properties associated with this runtime component. The
-         * contents will vary depending on how the runtime was created and 
-         * what component types/versions it's comprised of.
-         * 
-         * @return the properties associated with this runtime
-         * @since 3.0
-         */
-        
-        public abstract Map<String,String> getProperties();
- 
-        /**
-         * @since 3.0
-         */
-        
-        public IStatus validate( final IProgressMonitor monitor )
-        {
-            return Status.OK_STATUS;
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeComponent.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeComponent.java
deleted file mode 100644
index ce9da85..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeComponent.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime;
-
-import java.util.Map;
-
-import org.eclipse.core.runtime.IAdaptable;
-
-/**
- * Represents a configured instance of a runtime component type and version. A runtime instance is 
- * composed of multiple runtime components.
- * 
- * <p>This interface is not intended to be implemented outside of this framework. Client code can 
- * get access to <code>IRuntimeComponent</code> objects by using methods on the 
- * {@link IRuntime} and {@link RuntimeManager} classes.</p>  
- * 
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- * @see IRuntime#getRuntimeComponents()
- * @see RuntimeManager#createRuntimeComponent(IRuntimeComponentVersion,Map) 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public interface IRuntimeComponent
-
-    extends IAdaptable
-    
-{
-    /**
-     * Returns the runtime component type that this is an instance of.
-     * 
-     * @return the runtime component type that this is an instance of
-     */
-    
-    IRuntimeComponentType getRuntimeComponentType();
-    
-    /**
-     * Returns the runtime component version that this is an instance of.
-     * 
-     * @return the runtime component version that this is an instance of
-     */
-    
-    IRuntimeComponentVersion getRuntimeComponentVersion();
-    
-    /**
-     * Returns the runtime that this component belongs to or <code>null</code> if this component
-     * has not yet been associated with a runtime.
-     * 
-     * @return the runtime that that this component belongs to
-     */
-    
-    IRuntime getRuntime();
-    
-    /**
-     * Returns the properties associated with this runtime component. The
-     * contents will vary dependending on the component type/version, but 
-     * usually this will at least contain the path to the location on disk where 
-     * the runtime is installed.
-     * 
-     * @return the properties associated with this runtime component
-     */
-    
-    Map<String,String> getProperties();
-    
-    /**
-     * Returns the value of the specified property.
-     * 
-     * @param name the property name
-     * @return the property value, or <code>null</code>
-     */
-    
-    String getProperty( String name );
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeComponentType.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeComponentType.java
deleted file mode 100644
index e446d1a..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeComponentType.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime;
-
-import java.util.Comparator;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.wst.common.project.facet.core.DefaultVersionComparator;
-
-/**
- * Represents the type of a runtime component. A runtime instance is composed of  multiple runtime 
- * components, each of which has a type and a version.
- * 
- * <p>This interface is not intended to be implemented outside of this framework. Runtime component
- * types are declared using <code>org.eclipse.wst.common.project.facet.core.runtimes</code>
- * extension point. Once declared, client code can get access to <code>IRuntimeComponentType</code> 
- * objects by using methods on the {@link RuntimeManager} class.</p>  
- *
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- * @see RuntimeManager#getRuntimeComponentTypes()
- * @see RuntimeManager#getRuntimeComponentType(String)
- * @see RuntimeManager#isRuntimeComponentTypeDefined(String)
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public interface IRuntimeComponentType
-
-    extends IAdaptable
-    
-{
-    /**
-     * Returns the runtime component type id.
-     * 
-     * @return the runtime component type id
-     */
-    
-    String getId();
-    
-    /**
-     * Returns the plugin id of where this runtime component type is defined.
-     * 
-     * @return the plugin id of where this runtime component type is defined
-     */
-    
-    String getPluginId();
-    
-    /**
-     * Returns all of the versions of this runtime component type.
-     * 
-     * @return all of the versions of this runtime component type
-     */
-    
-    Set<IRuntimeComponentVersion> getVersions();
-    
-    Set<IRuntimeComponentVersion> getVersions( String expr )
-    
-        throws CoreException;
-    
-    /**
-     * Determines whether the specified version of this runtime component type
-     * exists.
-     * 
-     * @param version the version string
-     * @return <code>true</code> if the specified version exists, 
-     *   <code>false</code> otherwise
-     */
-    
-    boolean hasVersion( String version );
-    
-    /**
-     * Returns the {@link IRuntimeComponentVersion} object corresponding to the
-     * provided version string.
-     * 
-     * @param version the version string
-     * @return the {@link IRuntimeComponentVersion} object corresponding to the
-     *   provided version string
-     * @throws IllegalArgumentException if the version does not exist
-     */
-    
-    IRuntimeComponentVersion getVersion( String version );
-    
-    /**
-     * Returns the latest version of this runtime component as specified by the 
-     * version comparator.
-     * 
-     * @return returns the latest version of this runtime component
-     */
-
-    IRuntimeComponentVersion getLatestVersion()
-    
-        throws CoreException;
-    
-    /**
-     * Returns a sorted list containing all of the versions of this runtime
-     * component type. The sort order is determined by the version comparator. 
-     * 
-     * @param ascending whether versions should be sorted in ascending order
-     * @return a sorted list containing all of the versions of this runtime 
-     *   component type
-     */
-    
-    List<IRuntimeComponentVersion> getSortedVersions( boolean ascending )
-    
-        throws CoreException;
-    
-    /**
-     * Returns the version comparator specified for this runtime component type.
-     * If no version comparator is specified, this method will return an 
-     * instance of the {@link DefaultVersionComparator}.
-     * 
-     * @return the version comparator specified for this runtime component type
-     */
-    
-    Comparator<String> getVersionComparator()
-    
-        throws CoreException;
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeComponentVersion.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeComponentVersion.java
deleted file mode 100644
index 6151430..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeComponentVersion.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.wst.common.project.facet.core.IVersion;
-
-/**
- * Represents a version of a runtime component. A runtime instance is composed of multiple runtime 
- * components, each of which has a type and a version.
- * 
- * <p>This interface is not intended to be implemented outside of this framework. Runtime component
- * versions are declared using <code>org.eclipse.wst.common.project.facet.core.runtimes</code>
- * extension point. Once declared, client code can get access to 
- * <code>IRuntimeComponentVersion</code> objects by using methods on the 
- * {@link IRuntimeComponentType} class.</p>  
- *
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- * @see IRuntimeComponentType#getVersions()
- * @see IRuntimeComponentType#getVersions(String)
- * @see IRuntimeComponentType#getVersion(String)
- * @see IRuntimeComponentType#hasVersion(String)
- * @see IRuntimeComponentType#getLatestVersion()
- * @see IRuntimeComponentType#getSortedVersions(boolean)
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public interface IRuntimeComponentVersion
-
-    extends Comparable, IVersion, IAdaptable
-    
-{
-    /**
-     * Returns the runtime component type that this is a version of.
-     * 
-     * @return returns the runtime component type that this is a version of
-     */
-    
-    IRuntimeComponentType getRuntimeComponentType();
-    
-    /**
-     * Returns the version string.
-     * 
-     * @return the version string
-     */
-    
-    String getVersionString();
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/RuntimeManager.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/RuntimeManager.java
deleted file mode 100644
index bb30331..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/RuntimeManager.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.wst.common.project.facet.core.IListener;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.runtime.events.IRuntimeLifecycleEvent;
-import org.eclipse.wst.common.project.facet.core.runtime.events.IRuntimeLifecycleListener;
-import org.eclipse.wst.common.project.facet.core.runtime.internal.RuntimeManagerImpl;
-
-/**
- * @noinstantiate This class is not intended to be instantiated by clients.
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class RuntimeManager 
-{
-    private RuntimeManager() {}
-    
-    /**
-     * Returns all of the available runtime component types.
-     * 
-     * @return all of the available runtime component types
-     */
-    
-    public static Set<IRuntimeComponentType> getRuntimeComponentTypes()
-    {
-        return RuntimeManagerImpl.getRuntimeComponentTypes();
-    }
-    
-    /**
-     * Determines whether the specified runtime component type exists.
-     * 
-     * @param id the runtime component type id
-     * @return <code>true</code> if the specified runtime component type exists,
-     *   <code>false</code> otherwise
-     */
-    
-    public static boolean isRuntimeComponentTypeDefined( final String id )
-    {
-        return RuntimeManagerImpl.isRuntimeComponentTypeDefined( id );
-    }
-    
-    /**
-     * Returns the {@link IRuntimeComponentType} object corresponding to the
-     * specified runtime component type id.
-     * 
-     * @param id the runtime componenet type id
-     * @return the {@link IRuntimeComponentType} object corresponding to the
-     *   specified runtime componenet type id
-     * @throws IllegalArgumentException if the runtime component type id is not
-     *   recognized
-     */
-    
-    public static IRuntimeComponentType getRuntimeComponentType( final String id )
-    {
-        return RuntimeManagerImpl.getRuntimeComponentType( id );
-    }
-    
-    /**
-     * Returns all of the defined runtimes.
-     * 
-     * @return all of the defined runtimes
-     */
-    
-    public static Set<IRuntime> getRuntimes()
-    {
-        return RuntimeManagerImpl.getRuntimes();
-    }
-    
-    /**
-     * Returns the runtimes that support all of the specified facets.
-     * 
-     * @param facets the facets that need to be supported
-     * @return the runtimes that support all of the specified facets
-     */
-    
-    public static Set<IRuntime> getRuntimes( final Set<IProjectFacetVersion> facets )
-    {
-        return RuntimeManagerImpl.getRuntimes( facets );
-    }
-    
-    
-    /**
-     * Determines whether the specified runtime has been defined.
-     * 
-     * @param name the runtime name
-     * @return <code>true</code> if the specified runtime is defined, 
-     *   <code>false</code> otherwise
-     */
-    
-    public static boolean isRuntimeDefined( final String name )
-    {
-        return RuntimeManagerImpl.isRuntimeDefined( name );
-    }
-    
-    /**
-     * Returns the runtime corresponding to the specified name.
-     * 
-     * @param name the runtime name
-     * @return the runtime corresponding to the specified name
-     * @throws IllegalArgumentException if the runtime name is not recognized
-     */
-    
-    public static IRuntime getRuntime( final String name )
-    {
-        return RuntimeManagerImpl.getRuntime( name );
-    }
-    
-    /**
-     * Defines a new runtime.
-     * 
-     * @param name the runtime name
-     * @param components the list of runtime componenets
-     * @param properties the runtime properties
-     * @return the new runtime
-     */
-    
-    public static IRuntime defineRuntime( final String name,
-                                          final List<IRuntimeComponent> components,
-                                          final Map<String,String> properties )
-    {
-        return RuntimeManagerImpl.defineRuntime( name, components, properties );
-    }
-    
-    /**
-     * Deletes the runtime from the registry.
-     * 
-     * @param runtime the runtime to delete
-     */
-    
-    public static void deleteRuntime( final IRuntime runtime )
-    {
-        RuntimeManagerImpl.deleteRuntime( runtime );
-    }
-    
-    /**
-     * Creates a new runtime componenet. This method is intended to be used in
-     * conjunction with the {@link #defineRuntime(String,List,Map)} method.
-     * 
-     * @param rcv the runtime component version
-     * @param properties the runtime component properties
-     * @return the new runtime component
-     */
-    
-    public static IRuntimeComponent createRuntimeComponent( final IRuntimeComponentVersion rcv,
-                                                            final Map<String,String> properties )
-    {
-        return RuntimeManagerImpl.createRuntimeComponent( rcv, properties );
-    }
-    
-    public static void addRuntimeListener( final IListener listener )
-    {
-        RuntimeManagerImpl.addRuntimeListener( listener );
-    }
-
-    public static void removeRuntimeListener( final IListener listener )
-    {
-        RuntimeManagerImpl.removeRuntimeListener( listener );
-    }
-    
-    public static void addListener( final IRuntimeLifecycleListener listener,
-                                    final IRuntimeLifecycleEvent.Type... types )
-    {
-        RuntimeManagerImpl.addListener( listener, types );
-    }
-    
-    public static void removeListener( final IRuntimeLifecycleListener listener )
-    {
-        RuntimeManagerImpl.removeListener( listener );
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/events/IRuntimeLifecycleEvent.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/events/IRuntimeLifecycleEvent.java
deleted file mode 100644
index db87309..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/events/IRuntimeLifecycleEvent.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime.events;
-
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-
-/**
- * The root interface of all runtime lifecycle events. 
- * 
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public interface IRuntimeLifecycleEvent
-{
-    enum Type
-    {
-        VALIDATION_STATUS_CHANGED
-    }
-    
-    /**
-     * Returns the type of this event.
-     * 
-     * @return the type of this event
-     */
-    
-    Type getType();
-    
-    /**
-     * The affected runtime.
-     * 
-     * @return the affected runtime
-     */
-    
-    IRuntime getRuntime();
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/events/IRuntimeLifecycleListener.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/events/IRuntimeLifecycleListener.java
deleted file mode 100644
index fcde3db..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/events/IRuntimeLifecycleListener.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime.events;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public interface IRuntimeLifecycleListener
-{
-    /**
-     * This method is called by the framework to notify the listener that an event has occurred.
-     * 
-     * <p>It is highly advised that any listener that performs non-critical or long-running tasks 
-     * that can be performed in the background (such as updating UI) do so asynchronously by
-     * spinning off a thread, scheduling a job, etc. This allows the original modification to
-     * complete faster resulting in better perceived responsiveness.</p>
-     * 
-     * @param event the object describing the event
-     */
-    
-    void handleEvent( IRuntimeLifecycleEvent event );
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/events/IValidationStatusChangedEvent.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/events/IValidationStatusChangedEvent.java
deleted file mode 100644
index 15cb12c..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/events/IValidationStatusChangedEvent.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime.events;
-
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public interface IValidationStatusChangedEvent
-
-    extends IRuntimeLifecycleEvent
-    
-{
-    IStatus getOldValidationStatus();
-    
-    IStatus getNewValidationStatus();
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/events/internal/RuntimeLifecycleListenerRegistry.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/events/internal/RuntimeLifecycleListenerRegistry.java
deleted file mode 100644
index 857ee8e..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/events/internal/RuntimeLifecycleListenerRegistry.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime.events.internal;
-
-import java.util.EnumMap;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.CopyOnWriteArraySet;
-
-import org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin;
-import org.eclipse.wst.common.project.facet.core.runtime.events.IRuntimeLifecycleEvent;
-import org.eclipse.wst.common.project.facet.core.runtime.events.IRuntimeLifecycleListener;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class RuntimeLifecycleListenerRegistry
-{
-    private final Map<IRuntimeLifecycleEvent.Type,Set<IRuntimeLifecycleListener>> listeners;
-    
-    public RuntimeLifecycleListenerRegistry()
-    {
-        this.listeners
-            = new EnumMap<IRuntimeLifecycleEvent.Type,Set<IRuntimeLifecycleListener>>( IRuntimeLifecycleEvent.Type.class );
-        
-        for( IRuntimeLifecycleEvent.Type t : IRuntimeLifecycleEvent.Type.values() )
-        {
-            this.listeners.put( t, new CopyOnWriteArraySet<IRuntimeLifecycleListener>() );
-        }
-    }
-    
-    public void addListener( final IRuntimeLifecycleListener listener,
-                             final IRuntimeLifecycleEvent.Type... types )
-    {
-        if( listener == null || types == null )
-        {
-            throw new IllegalArgumentException();
-        }
-        
-        for( IRuntimeLifecycleEvent.Type type 
-             : ( types.length > 0 ? types : IRuntimeLifecycleEvent.Type.values() ) )
-        {
-            this.listeners.get( type ).add( listener );
-        }
-    }
-    
-    public void removeListener( final IRuntimeLifecycleListener listener )
-    {
-        if( listener == null )
-        {
-            throw new IllegalArgumentException();
-        }
-        
-        for( Set<IRuntimeLifecycleListener> listeners : this.listeners.values() )
-        {
-            listeners.remove( listener );
-        }
-    }
-    
-    public void notifyListeners( final IRuntimeLifecycleEvent event )
-    {
-        for( IRuntimeLifecycleListener listener : this.listeners.get( event.getType() ) )
-        {
-            try
-            {
-                listener.handleEvent( event );
-            }
-            catch( Exception e )
-            {
-                FacetCorePlugin.log( e );
-            }
-        }
-    }
-    
-    public Set<IRuntimeLifecycleListener> getListeners( final IRuntimeLifecycleEvent.Type eventType )
-    {
-        return this.listeners.get( eventType );
-    }
-    
-    public boolean isEmpty()
-    {
-        for( Set<IRuntimeLifecycleListener> listeners : this.listeners.values() )
-        {
-            if( ! listeners.isEmpty() )
-            {
-                return false;
-            }
-        }
-        
-        return true;
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/events/internal/ValidationStatusChangedEvent.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/events/internal/ValidationStatusChangedEvent.java
deleted file mode 100644
index 4c9e63a..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/events/internal/ValidationStatusChangedEvent.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime.events.internal;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-import org.eclipse.wst.common.project.facet.core.runtime.events.IRuntimeLifecycleEvent;
-import org.eclipse.wst.common.project.facet.core.runtime.events.IValidationStatusChangedEvent;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class ValidationStatusChangedEvent
-
-    implements IValidationStatusChangedEvent
-    
-{
-    private final IRuntime runtime;
-    private final IStatus oldValidationStatus;
-    private final IStatus newValidationStatus;
-    
-    public ValidationStatusChangedEvent( final IRuntime runtime,
-                                         final IStatus oldValidationStatus,
-                                         final IStatus newValidationStatus )
-    {
-        this.runtime = runtime;
-        this.oldValidationStatus = oldValidationStatus;
-        this.newValidationStatus = newValidationStatus;
-    }
-
-    public Type getType()
-    {
-        return IRuntimeLifecycleEvent.Type.VALIDATION_STATUS_CHANGED;
-    }
-
-    public IRuntime getRuntime()
-    {
-        return this.runtime;
-    }
-
-    public IStatus getOldValidationStatus()
-    {
-        return this.oldValidationStatus;
-    }
-
-    public IStatus getNewValidationStatus()
-    {
-        return this.newValidationStatus;
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/AbstractRuntime.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/AbstractRuntime.java
deleted file mode 100644
index 064593f..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/AbstractRuntime.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime.internal;
-
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponent;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public abstract class AbstractRuntime
-
-    implements IRuntime
-    
-{
-    private static final String PROP_LOCALIZED_NAME = "localized-name"; //$NON-NLS-1$
-    
-    /**
-     * The value of the property should be a comma-separate list of names that this runtime
-     * can be alternatively known by. Any commas in the names have to be escaped using a leading
-     * slash character ('\'). 
-     */
-    
-    private static final String PROP_ALTERNATE_NAMES = "alternate-names"; //$NON-NLS-1$
-    
-    private String name;
-    
-    /**
-     * This class should not be subclassed outside this package.
-     */
-    
-    AbstractRuntime() {}
-    
-    public final String getName()
-    {
-        return this.name;
-    }
-    
-    public final String getLocalizedName()
-    {
-        String localizedName = getProperty( PROP_LOCALIZED_NAME );
-        
-        if( localizedName == null )
-        {
-            localizedName = getName();
-        }
-        
-        return localizedName;
-    }
-    
-    public final Set<String> getAlternateNames()
-    {
-        final String alternateNamesProp = getProperty( PROP_ALTERNATE_NAMES );
-        final Set<String> alternateNames = new HashSet<String>();
-        
-        final String localizedName = getLocalizedName();
-        
-        if( ! localizedName.equals( getName() ) )
-        {
-            alternateNames.add( localizedName );
-        }
-        
-        if( alternateNamesProp != null )
-        {
-            final StringBuilder buf = new StringBuilder();
-            boolean seenEscapeChar = false;
-            
-            for( int i = 0, n = alternateNamesProp.length(); i < n; i++ )
-            {
-                final char ch = alternateNamesProp.charAt( i );
-                
-                if( seenEscapeChar )
-                {
-                    if( ch != ',' )
-                    {
-                        buf.append( '\\' );
-                    }
-                    
-                    buf.append( ch );
-                    seenEscapeChar = false;
-                }
-                else
-                {
-                    if( ch == '\\' && i != n - 1 )
-                    {
-                        seenEscapeChar = true;
-                    }
-                    else if( ch == ',' )
-                    {
-                        final String name = buf.toString().trim();
-                        
-                        if( name.length() > 0 )
-                        {
-                            alternateNames.add( name );
-                        }
-                        
-                        buf.setLength( 0 );
-                    }
-                    else
-                    {
-                        buf.append( ch );
-                    }
-                }
-            }
-            
-            if( seenEscapeChar )
-            {
-                buf.append( '\\' );
-            }
-            
-            final String name = buf.toString().trim();
-            
-            if( name.length() > 0 )
-            {
-                alternateNames.add( name );
-            }
-        }
-        
-        return Collections.unmodifiableSet( alternateNames );
-    }
-    
-    final void setName( final String name )
-    {
-        this.name = name;
-    }
-
-    public final String getProperty( final String key )
-    {
-        return getProperties().get( key );
-    }
-    
-    public final Object getAdapter( final Class adapter )
-    {
-        final String t = adapter.getName();
-        Object res = Platform.getAdapterManager().loadAdapter( this, t );
-        
-        if( res == null )
-        {
-            for( IRuntimeComponent rc : getRuntimeComponents() )
-            {
-                res = rc.getAdapter( adapter );
-                
-                if( res != null )
-                {
-                    return res;
-                }
-            }
-        }
-        
-        return res;
-    }
-    
-    public boolean supports( final IProjectFacet f )
-    {
-        for( IProjectFacetVersion fv : f.getVersions() )
-        {
-            if( supports( fv ) )
-            {
-                return true;
-            }
-        }
-        
-        return false;
-    }
-    
-    public Set<IProjectFacetVersion> getDefaultFacets( final Set<IProjectFacet> fixed )
-    
-        throws CoreException
-        
-    {
-        final Set<IProjectFacetVersion> facets = new HashSet<IProjectFacetVersion>();
-        
-        for( IProjectFacet f : fixed )
-        {
-            facets.add( f.getLatestSupportedVersion( this ) );
-        }
-        
-        return facets;
-    }
-    
-    public IStatus validate( final IProgressMonitor monitor )
-    {
-        return Status.OK_STATUS;
-    }
-
-    public final boolean equals( final Object obj )
-    {
-        if( obj instanceof IRuntime )
-        {
-            final IRuntime r = (IRuntime) obj;
-            
-            return getName().equals( r.getName() ) && 
-                   getRuntimeComponents().equals( r.getRuntimeComponents() ) &&
-                   getProperties().equals( r.getProperties() );
-        }
-        
-        return false;
-    }
-    
-    public final int hashCode()
-    {
-        return this.name.hashCode();
-    }
-    
-    public String toString()
-    {
-        return this.name;
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/BridgedRuntime.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/BridgedRuntime.java
deleted file mode 100644
index 4d92c01..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/BridgedRuntime.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime.internal;
-
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeBridge;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponent;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class BridgedRuntime
-
-    extends AbstractRuntime
-    
-{
-    private final String bridgeId;
-    private final String nativeRuntimeId;
-    private final IRuntimeBridge.IStub stub;
-    private Set<IProjectFacetVersion> supported;
-    private List<IRuntimeComponent> composition;
-    
-    BridgedRuntime( final String bridgeId,
-                    final String nativeRuntimeId,
-                    final IRuntimeBridge.IStub stub )
-    {
-        this.bridgeId = bridgeId;
-        this.nativeRuntimeId = nativeRuntimeId;
-        this.stub = stub;
-    }
-    
-    String getBridgeId()
-    {
-        return this.bridgeId;
-    }
-    
-    String getNativeRuntimeId()
-    {
-        return this.nativeRuntimeId;
-    }
-    
-    public List<IRuntimeComponent> getRuntimeComponents()
-    {
-        final List<IRuntimeComponent> components = this.stub.getRuntimeComponents();
-        
-        for( IRuntimeComponent rc : components )
-        {
-            ( (RuntimeComponent) rc ).setRuntime( this );
-        }
-        
-        return Collections.unmodifiableList( components );
-    }
-    
-    public Map<String,String> getProperties()
-    {
-        return Collections.unmodifiableMap( this.stub.getProperties() );
-    }
-
-    public synchronized boolean supports( final IProjectFacetVersion fv )
-    {
-        if( fv.getPluginId() == null )
-        {
-            return true;
-        }
-        
-        final List<IRuntimeComponent> comp = getRuntimeComponents();
-        
-        if( this.supported == null || ! this.composition.equals( comp ) )
-        {
-            this.supported = RuntimeManagerImpl.getSupportedFacets( comp );
-            this.composition = comp;
-        }
-        
-        return this.supported.contains( fv );
-    }
-
-    @Override
-    public IStatus validate( final IProgressMonitor monitor )
-    {
-        if( this.stub instanceof IRuntimeBridge.Stub )
-        {
-            return ( (IRuntimeBridge.Stub) this.stub ).validate( monitor );
-        }
-        else
-        {
-            return super.validate( monitor );
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/Runtime.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/Runtime.java
deleted file mode 100644
index d284e29..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/Runtime.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime.internal;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponent;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class Runtime
-
-    extends AbstractRuntime
-    
-{
-    private final List<IRuntimeComponent> components = new ArrayList<IRuntimeComponent>();
-    
-    private final List<IRuntimeComponent> componentsReadOnly 
-        = Collections.unmodifiableList( this.components );
-    
-    private final Map<String,String> properties = new HashMap<String,String>();
-    
-    private final Map<String,String> propertiesReadOnly
-        = Collections.unmodifiableMap( this.properties );
-    
-    private Set<IProjectFacetVersion> supported = null;
-    
-    /**
-     * This class should not be instantiated outside this package.
-     */
-    
-    Runtime() {}
-    
-    public List<IRuntimeComponent> getRuntimeComponents()
-    {
-        return this.componentsReadOnly;
-    }
-    
-    void addRuntimeComponent( final IRuntimeComponent component )
-    {
-        ( (RuntimeComponent) component ).setRuntime( this );
-        this.components.add( component );
-    }
-
-    public Map<String,String> getProperties()
-    {
-        return this.propertiesReadOnly;
-    }
-
-    void setProperty( final String key,
-                      final String value )
-    {
-        this.properties.put( key, value );
-    }
-
-    public synchronized boolean supports( final IProjectFacetVersion fv )
-    {
-        if( fv.getPluginId() == null )
-        {
-            return true;
-        }
-        
-        if( this.supported == null )
-        {
-            this.supported = RuntimeManagerImpl.getSupportedFacets( this.components );
-        }
-            
-        return this.supported.contains( fv );
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeComponent.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeComponent.java
deleted file mode 100644
index 0798b0a..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeComponent.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime.internal;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.core.runtime.IAdapterManager;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponent;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponentType;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponentVersion;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class RuntimeComponent
-
-    implements IRuntimeComponent
-    
-{
-    private RuntimeComponentVersion rcv;
-    private IRuntime runtime;
-    private final Map<String,String> properties;
-    private final Map<String,String> propertiesReadOnly;
-    
-    /**
-     * This class should not be instantiated outside this package.
-     */
-
-    RuntimeComponent() 
-    {
-        this.rcv = null;
-        this.runtime = null;
-        this.properties = new HashMap<String,String>();
-        this.propertiesReadOnly = Collections.unmodifiableMap( this.properties );
-    }
-
-    public IRuntimeComponentType getRuntimeComponentType()
-    {
-        return this.rcv.getRuntimeComponentType();
-    }
-
-    public IRuntimeComponentVersion getRuntimeComponentVersion()
-    {
-        return this.rcv;
-    }
-    
-    void setRuntimeComponentVersion( final IRuntimeComponentVersion rcv )
-    {
-        this.rcv = (RuntimeComponentVersion) rcv;
-    }
-    
-    public IRuntime getRuntime()
-    {
-        return this.runtime;
-    }
-    
-    void setRuntime( final IRuntime runtime )
-    {
-        if( runtime == null )
-        {
-            throw new IllegalArgumentException();
-        }
-        
-        if( this.runtime != null )
-        {
-            throw new IllegalStateException( Resources.runtimeAlreadySet );
-        }
-        
-        this.runtime = runtime;
-    }
-
-    public Map<String,String> getProperties()
-    {
-        return this.propertiesReadOnly;
-    }
-
-    public String getProperty( final String key )
-    {
-        return this.properties.get( key );
-    }
-    
-    void setProperty( final String key,
-                      final String value )
-    {
-        this.properties.put( key, value );
-    }
-
-    public Object getAdapter( final Class type )
-    {
-        final IAdapterManager manager = Platform.getAdapterManager();
-        Object res = manager.loadAdapter( this, type.getName() );
-        
-        if( res == null )
-        {
-            IAdapterFactory factory = null;
-            
-            try
-            {
-                factory = this.rcv.getAdapterFactory( type );
-            }
-            catch( CoreException e )
-            {
-                FacetCorePlugin.log( e );
-            }
-            
-            if( factory != null )
-            {
-                res = factory.getAdapter( this, type );
-            }
-        }
-        
-        return res;
-    }
-
-    public boolean equals( final Object obj )
-    {
-        if( obj instanceof RuntimeComponent )
-        {
-            final RuntimeComponent rc = (RuntimeComponent) obj;
-            return this.rcv == rc.rcv && this.properties.equals( rc.properties );
-        }
-        
-        return false;
-    }
-    
-    public int hashCode()
-    {
-        return this.rcv.hashCode();
-    }
-    
-    public String toString()
-    {
-        return this.rcv.toString();
-    }
-
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String runtimeAlreadySet;
-        
-        static
-        {
-            initializeMessages( RuntimeComponent.class.getName(), Resources.class );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeComponent.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeComponent.properties
deleted file mode 100644
index d486468..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeComponent.properties
+++ /dev/null
@@ -1 +0,0 @@
-runtimeAlreadySet = Component already associated with a runtime.
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeComponentType.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeComponentType.java
deleted file mode 100644
index 3a6dcc3..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeComponentType.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime.internal;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponentType;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponentVersion;
-import org.eclipse.wst.common.project.facet.core.util.internal.Versionable;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class RuntimeComponentType
-
-    extends Versionable<IRuntimeComponentVersion>
-    implements IRuntimeComponentType
-    
-{
-    private String id;
-    private String plugin;
-    
-    public String getId()
-    {
-        return this.id;
-    }
-    
-    void setId( final String id )
-    {
-        this.id = id;
-    }
-    
-    public String getPluginId()
-    {
-        return this.plugin;
-    }
-    
-    void setPluginId( final String plugin )
-    {
-        this.plugin = plugin;
-    }
-    
-    void addVersion( final IRuntimeComponentVersion ver )
-    {
-        this.versions.add( ver.getVersionString(), ver );
-    }
-    
-    @SuppressWarnings( "unchecked" )
-    public Object getAdapter( final Class type )
-    {
-        return Platform.getAdapterManager().loadAdapter( this, type.getName() );
-    }
-
-    public String createVersionNotFoundErrMsg( final String verstr )
-    {
-        return NLS.bind( RuntimeManagerImpl.Resources.runtimeComponentVersionNotDefined,
-                         this.id, verstr );
-    }
-    
-    public String toString()
-    {
-        return this.id;
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeComponentVersion.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeComponentVersion.java
deleted file mode 100644
index 797a112..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeComponentVersion.java
+++ /dev/null
@@ -1,208 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime.internal;
-
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.instantiate;
-
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.IVersion;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponentType;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponentVersion;
-import org.eclipse.wst.common.project.facet.core.util.internal.UnknownVersion;
-import org.eclipse.wst.common.project.facet.core.util.internal.Versionable;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class RuntimeComponentVersion
-
-    implements IRuntimeComponentVersion
-    
-{
-    private String plugin;
-    private IRuntimeComponentType type;
-    private String version;
-    private final Map<String,Object> adapterFactories = new HashMap<String,Object>();
-    private Map<IRuntimeComponentVersion,Integer> compTable = null;
-    
-    public String getPluginId()
-    {
-        return this.plugin;
-    }
-    
-    void setPluginId( final String plugin )
-    {
-        this.plugin = plugin;
-    }
-
-    public IRuntimeComponentType getRuntimeComponentType()
-    {
-        return this.type;
-    }
-    
-    void setRuntimeComponentType( final IRuntimeComponentType type )
-    {
-        this.type = type;
-    }
-
-    public String getVersionString()
-    {
-        return this.version;
-    }
-    
-    void setVersionString( final String version )
-    {
-        this.version = version;
-    }
-    
-    public Versionable getVersionable()
-    {
-        return (Versionable) this.type;
-    }
-
-    public IAdapterFactory getAdapterFactory( final Class<?> type )
-    
-        throws CoreException
-        
-    {
-        synchronized( this.adapterFactories )
-        {
-            Object factory = this.adapterFactories.get( type.getName() );
-            
-            if( factory == null )
-            {
-                return null;
-            }
-            
-            if( factory instanceof PluginAndClass )
-            {
-                final PluginAndClass ref = (PluginAndClass) factory;
-                factory = instantiate( ref.plugin, ref.clname, IAdapterFactory.class );
-                this.adapterFactories.put( type.getName(), factory );
-            }
-            
-            return (IAdapterFactory) factory;
-        }
-    }
-    
-    void addAdapterFactory( final String type,
-                            final String plugin,
-                            final String factory )
-    {
-        synchronized( this.adapterFactories )
-        {
-            this.adapterFactories.put( type, new PluginAndClass( plugin, factory ) );
-        }
-    }
-    
-    void setComparisonTable( final Map<IRuntimeComponentVersion,Integer> compTable )
-    {
-        this.compTable = compTable;
-    }
-
-    public int compareTo( final Object obj )
-    {
-        if( obj == this )
-        {
-            return 0;
-        }
-        else if( obj instanceof IRuntimeComponentVersion )
-        {
-            final IRuntimeComponentVersion rcv = (IRuntimeComponentVersion) obj;
-            
-            if( rcv.getRuntimeComponentType() != this.type )
-            {
-                final String msg
-                    = Resources.bind( Resources.cannotCompareVersionsOfDifferentTypes,
-                                      this.type.getId(), this.version,
-                                      rcv.getRuntimeComponentType().getId(), 
-                                      rcv.getVersionString() );
-                
-                throw new RuntimeException( msg );
-            }
-            
-            return this.compTable.get( rcv ).intValue();
-        }
-        else if( obj instanceof UnknownVersion )
-        {
-            try
-            {
-                final Comparator<String> comp = this.type.getVersionComparator();
-                return comp.compare( this.version, ( (IVersion) obj ).getVersionString() );
-            }
-            catch( CoreException e )
-            {
-                throw new RuntimeException( e );
-            }
-        }
-        else
-        {
-            throw new IllegalArgumentException();
-        }
-        
-    }
-    
-    @SuppressWarnings( "unchecked" )
-    public Object getAdapter( final Class type )
-    {
-        return Platform.getAdapterManager().loadAdapter( this, type.getName() );
-    }
-
-    public String toString()
-    {
-        return this.type.getId() + " " + this.version; //$NON-NLS-1$
-    }
-
-    private static final class PluginAndClass
-    {
-        public final String plugin;
-        public final String clname;
-        
-        public PluginAndClass( final String plugin,
-                               final String clname )
-        {
-            this.plugin = plugin;
-            this.clname = clname;
-        }
-    }
-
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String cannotCompareVersionsOfDifferentTypes;
-        
-        static
-        {
-            initializeMessages( RuntimeComponentVersion.class.getName(), Resources.class );
-        }
-        
-        public static String bind( final String template,
-                                   final Object arg1,
-                                   final Object arg2,
-                                   final Object arg3,
-                                   final Object arg4 )
-        {
-            return NLS.bind( template, new Object[] { arg1, arg2, arg3, arg4 } );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeComponentVersion.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeComponentVersion.properties
deleted file mode 100644
index 4588b25..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeComponentVersion.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-cannotCompareVersionsOfDifferentTypes = \
-  Cannot compare versions of different runtime component types to each other. \
-  Attempted to compare version {1} of runtime component type {0} with version \
-  {3} of runtime component type {2}. 
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeManagerImpl.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeManagerImpl.java
deleted file mode 100644
index 310fb2f..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeManagerImpl.java
+++ /dev/null
@@ -1,1088 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime.internal;
-
-import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.instantiate;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.IListener;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.common.project.facet.core.VersionFormatException;
-import org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin;
-import org.eclipse.wst.common.project.facet.core.internal.ProblemLog;
-import org.eclipse.wst.common.project.facet.core.internal.ProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeBridge;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponent;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponentType;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponentVersion;
-import org.eclipse.wst.common.project.facet.core.runtime.RuntimeManager;
-import org.eclipse.wst.common.project.facet.core.runtime.events.IRuntimeLifecycleEvent;
-import org.eclipse.wst.common.project.facet.core.runtime.events.IRuntimeLifecycleListener;
-import org.eclipse.wst.common.project.facet.core.runtime.events.internal.RuntimeLifecycleListenerRegistry;
-import org.eclipse.wst.common.project.facet.core.runtime.events.internal.ValidationStatusChangedEvent;
-import org.eclipse.wst.common.project.facet.core.util.internal.IndexedSet;
-import org.eclipse.wst.common.project.facet.core.util.internal.VersionExpr;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class RuntimeManagerImpl
-{
-    private static final String EXTENSION_ID = "runtimes"; //$NON-NLS-1$
-    private static final String BRIDGES_EXTENSION_ID = "runtimeBridges"; //$NON-NLS-1$
-
-    private static final String ATTR_CLASS = "class"; //$NON-NLS-1$
-    private static final String ATTR_ID = "id"; //$NON-NLS-1$
-    private static final String ATTR_TYPE = "type"; //$NON-NLS-1$
-    private static final String ATTR_VERSION = "version"; //$NON-NLS-1$
-    private static final String EL_ADAPTER = "adapter"; //$NON-NLS-1$
-    private static final String EL_BRIDGE = "bridge"; //$NON-NLS-1$
-    private static final String EL_FACET = "facet"; //$NON-NLS-1$
-    private static final String EL_FACTORY = "factory"; //$NON-NLS-1$
-    private static final String EL_RUNTIME_COMPONENT = "runtime-component"; //$NON-NLS-1$
-    private static final String EL_RUNTIME_COMPONENT_TYPE = "runtime-component-type"; //$NON-NLS-1$
-    private static final String EL_RUNTIME_COMPONENT_VERSION = "runtime-component-version"; //$NON-NLS-1$
-    private static final String EL_SUPPORTED = "supported"; //$NON-NLS-1$
-    private static final String EL_VERSION_COMPARATOR = "version-comparator"; //$NON-NLS-1$
-
-    private static final String ANY = "any"; //$NON-NLS-1$
-    
-    private static final IndexedSet<String,IRuntimeComponentType> runtimeComponentTypes;
-    private static final IndexedSet<String,IRuntime> runtimes;
-    private static final List<Mapping> mappings;
-    private static final Map<String,IRuntimeBridge> bridges;
-    private static final Set<IListener> listeners;
-    private static final RuntimeLifecycleListenerRegistry runtimeLifecycleListenerRegistry;
-    private static RuntimeValidationThread runtimeValidationThread;
-    
-    static
-    {
-        runtimeComponentTypes = new IndexedSet<String,IRuntimeComponentType>();
-        runtimes = new IndexedSet<String,IRuntime>();
-        mappings = new ArrayList<Mapping>();
-        bridges = new HashMap<String,IRuntimeBridge>();
-        listeners = new HashSet<IListener>();
-        runtimeLifecycleListenerRegistry = new RuntimeLifecycleListenerRegistry();
-        runtimeValidationThread = null;
-        
-        readMetadata();
-        readBridgesExtensions();
-    }
-    
-    private RuntimeManagerImpl() {}
-    
-    public static Set<IRuntimeComponentType> getRuntimeComponentTypes()
-    {
-        return runtimeComponentTypes.getUnmodifiable();
-    }
-    
-    public static boolean isRuntimeComponentTypeDefined( final String id )
-    {
-        return runtimeComponentTypes.containsKey( id );
-    }
-    
-    public static IRuntimeComponentType getRuntimeComponentType( final String id )
-    {
-        final IRuntimeComponentType rc = runtimeComponentTypes.get( id );
-        
-        if( rc == null )
-        {
-            final String msg 
-                = NLS.bind( Resources.runtimeComponentTypeNotDefined, id );
-            
-            throw new IllegalArgumentException( msg );
-        }
-        
-        return rc;
-    }
-    
-    public static IRuntimeComponent createRuntimeComponent( final IRuntimeComponentVersion rcv,
-                                                            final Map<String,String> properties )
-    {
-        final RuntimeComponent rc = new RuntimeComponent();
-        
-        rc.setRuntimeComponentVersion( rcv );
-        
-        if( properties != null )
-        {
-            for( Map.Entry<String,String> entry : properties.entrySet() )
-            {
-                rc.setProperty( entry.getKey(), entry.getValue() );
-            }
-        }
-        
-        return rc;
-    }
-    
-    public static Set<IRuntime> getRuntimes()
-    {
-        synchronized( runtimes )
-        {
-            bridge();
-            return new HashSet<IRuntime>( runtimes );
-        }
-    }
-    
-    public static Set<IRuntime> getRuntimes( final Set<IProjectFacetVersion> facets )
-    {
-        synchronized( runtimes )
-        {
-            bridge();
-            
-            final Set<IRuntime> result = new HashSet<IRuntime>();
-            
-            for( IRuntime r : runtimes )
-            {
-                boolean supports = true;
-                
-                for( IProjectFacetVersion fv : facets )
-                {
-                    if( ! r.supports( fv ) )
-                    {
-                        supports = false;
-                        break;
-                    }
-                }
-                
-                if( supports )
-                {
-                    result.add( r );
-                }
-            }
-            
-            return result;
-        }
-    }
-    
-    public static boolean isRuntimeDefined( final String name )
-    {
-        synchronized( runtimes )
-        {
-            bridge();
-            return runtimes.containsKey( name );
-        }
-    }
-    
-    public static IRuntime getRuntime( final String name )
-    {
-        synchronized( runtimes )
-        {
-            bridge();
-            
-            final IRuntime runtime = runtimes.get( name );
-            
-            if( runtime == null )
-            {
-                final String msg = NLS.bind( Resources.runtimeNotDefined, name );
-                throw new IllegalArgumentException( msg );
-            }
-            
-            return runtime;
-        }
-    }
-    
-    public static IRuntime defineRuntime( final String name,
-                                          final List<IRuntimeComponent> components,
-                                          final Map<String,String> properties )
-    {
-        synchronized( runtimes )
-        {
-            final Runtime r = new Runtime();
-            
-            r.setName( name );
-            
-            for( IRuntimeComponent rc : components )
-            {
-                r.addRuntimeComponent( rc );
-            }
-            
-            if( properties != null )
-            {
-                for( Map.Entry<String,String> entry : properties.entrySet() )
-                {
-                    r.setProperty( entry.getKey(), entry.getValue() );
-                }
-            }
-            
-            runtimes.add( r.getName(), r );
-            
-            notifyRuntimeListeners();
-            
-            return r;
-        }
-    }
-    
-    public static void deleteRuntime( final IRuntime runtime )
-    {
-        synchronized( runtimes )
-        {
-            if( runtimes.delete( runtime.getName() ) )
-            {
-                notifyRuntimeListeners();
-            }
-        }
-    }
-    
-    public static void addRuntimeListener( final IListener listener )
-    {
-        synchronized( listeners )
-        {
-            listeners.add( listener );
-        }
-    }
-    
-    public static void removeRuntimeListener( final IListener listener )
-    {
-        synchronized( listeners )
-        {
-            listeners.remove( listener );
-        }
-    }
-    
-    private static void notifyRuntimeListeners()
-    {
-        for( IListener listener : listeners )
-        {
-            try
-            {
-                listener.handle();
-            }
-            catch( Exception e )
-            {
-                FacetCorePlugin.log( e );
-            }
-        }
-    }
-    
-    public static void addListener( final IRuntimeLifecycleListener listener,
-                                    final IRuntimeLifecycleEvent.Type... types )
-    {
-        synchronized( runtimeLifecycleListenerRegistry )
-        {
-            runtimeLifecycleListenerRegistry.addListener( listener, types );
-            
-            if( runtimeValidationThread == null )
-            {
-                runtimeValidationThread = new RuntimeValidationThread();
-                runtimeValidationThread.start();
-            }
-        }
-    }
-    
-    public static void removeListener( final IRuntimeLifecycleListener listener )
-    {
-        synchronized( runtimeLifecycleListenerRegistry )
-        {
-            runtimeLifecycleListenerRegistry.removeListener( listener );
-            
-            if( runtimeValidationThread != null && runtimeLifecycleListenerRegistry.isEmpty() )
-            {
-                runtimeValidationThread.terminate();
-                runtimeValidationThread = null;
-            }
-        }
-    }
-    
-    static Set<IProjectFacetVersion> getSupportedFacets( final List<IRuntimeComponent> composition )
-    {
-        final Set<IProjectFacetVersion> result = new HashSet<IProjectFacetVersion>();
-        
-        for( IRuntimeComponent rc : composition )
-        {
-            for( Mapping m : mappings )
-            {
-                try
-                {
-                    result.addAll( m.getSupportedFacets( rc ) );                    
-                }
-                catch( CoreException e )
-                {
-                    FacetCorePlugin.log( e.getStatus() );
-                }
-                catch( VersionFormatException e )
-                {
-                    FacetCorePlugin.log( e );
-                }
-            }
-        }
-        
-        return result;
-    }
-    
-    private static void bridge()
-    {
-        boolean modified = false;
-        
-        for( Map.Entry<String,IRuntimeBridge> entry : bridges.entrySet() )
-        {
-            final String brid = entry.getKey();
-            final IRuntimeBridge br = entry.getValue();
-            
-            // Find the runtimes belonging to this bridge that are currently
-            // in the system.
-            
-            final Map<String,BridgedRuntime> existing = new HashMap<String,BridgedRuntime>();
-            
-            for( IRuntime r : runtimes )
-            {
-                if( r instanceof BridgedRuntime )
-                {
-                    final BridgedRuntime bridged = (BridgedRuntime) r;
-                    
-                    if( bridged.getBridgeId().equals( brid ) )
-                    {
-                        existing.put( bridged.getNativeRuntimeId(), bridged );
-                    }
-                }
-            }
-            
-            // Get the new set of exported runtimes.
-            
-            final Set<String> exported;
-            
-            try
-            {
-                exported = br.getExportedRuntimeNames();
-            }
-            catch( CoreException e )
-            {
-                FacetCorePlugin.log( e );
-                
-                for( BridgedRuntime r : existing.values() )
-                {
-                    runtimes.remove( r.getName() );
-                    modified = true;
-                }
-                
-                continue;
-            }
-            
-            // Remove the absolete entries.
-            
-            for( BridgedRuntime r : existing.values() )
-            {
-                if( ! exported.contains( r.getNativeRuntimeId() ) )
-                {
-                    runtimes.delete( r.getName() );
-                    modified = true;
-                }
-            }
-            
-            // Create the new entries.
-            
-            for( String id : exported )
-            {
-                if( ! existing.containsKey( id ) )
-                {
-                    try
-                    {
-                        final IRuntimeBridge.IStub stub = br.bridge( id );
-                        
-                        final BridgedRuntime r 
-                            = new BridgedRuntime( brid, id, stub );
-                        
-                        r.setName( createUniqueRuntimeName( id ) );
-                        
-                        runtimes.add( r.getName(), r );
-                        modified = true;
-                    }
-                    catch( CoreException e )
-                    {
-                        FacetCorePlugin.log( e );
-                    }
-                }
-            }
-            
-            if( modified )
-            {
-                notifyRuntimeListeners();
-            }
-        }
-    }
-    
-    private static String createUniqueRuntimeName( final String suggestion )
-    {
-        String name = suggestion;
-        
-        for( int i = 1; runtimes.containsKey( name ); i++ )
-        {
-            name = suggestion + " (" + i + ")"; //$NON-NLS-1$ //$NON-NLS-2$
-        }
-        
-        return name;
-    }
-    
-    private static void readMetadata()
-    {
-        final IExtensionRegistry registry = Platform.getExtensionRegistry();
-        
-        final IExtensionPoint point 
-            = registry.getExtensionPoint( FacetCorePlugin.PLUGIN_ID, 
-                                          EXTENSION_ID );
-        
-        if( point == null )
-        {
-            throw new RuntimeException( "Extension point not found!" ); //$NON-NLS-1$
-        }
-        
-        final List<IConfigurationElement> cfgels = new ArrayList<IConfigurationElement>();
-        
-        for( IExtension extension : point.getExtensions() )
-        {
-            for( IConfigurationElement cfgel : extension.getConfigurationElements() )
-            {
-                cfgels.add( cfgel );
-            }
-        }
-        
-        for( IConfigurationElement config : cfgels )
-        {
-            if( config.getName().equals( EL_RUNTIME_COMPONENT_TYPE ) )
-            {
-                readRuntimeComponentType( config );
-            }
-        }
-
-        for( IConfigurationElement config : cfgels )
-        {
-            if( config.getName().equals( EL_RUNTIME_COMPONENT_VERSION ) )
-            {
-                readRuntimeComponentVersion( config );
-            }
-        }
-        
-        calculateVersionComparisonTables();
-
-        for( IConfigurationElement config : cfgels )
-        {
-            if( config.getName().equals( EL_ADAPTER ) )
-            {
-                readAdapter( config );
-            }
-        }
-
-        for( IConfigurationElement config : cfgels )
-        {
-            if( config.getName().equals( EL_SUPPORTED ) )
-            {
-                readMapping( config );
-            }
-        }
-    }
-    
-    private static void readRuntimeComponentType( final IConfigurationElement config )
-    {
-        final String id = config.getAttribute( ATTR_ID );
-
-        if( id == null )
-        {
-            reportMissingAttribute( config, ATTR_ID );
-            return;
-        }
-        
-        final RuntimeComponentType rct = new RuntimeComponentType();
-        rct.setId( id );
-        rct.setPluginId( config.getContributor().getName() );
-
-        final IConfigurationElement[] children = config.getChildren();
-        
-        for( int i = 0; i < children.length; i++ )
-        {
-            final IConfigurationElement child = children[ i ];
-            final String childName = child.getName();
-            
-            if( childName.equals( EL_VERSION_COMPARATOR ) )
-            {
-                final String clname = child.getAttribute( ATTR_CLASS );
-                
-                if( clname == null )
-                {
-                    reportMissingAttribute( child, ATTR_CLASS );
-                    return;
-                }
-                
-                rct.setVersionComparator( clname );
-            }
-        }
-        
-        runtimeComponentTypes.add( id, rct );
-    }
-    
-    private static void readRuntimeComponentVersion( final IConfigurationElement config )
-    {
-        final String type = config.getAttribute( ATTR_TYPE );
-
-        if( type == null )
-        {
-            reportMissingAttribute( config, ATTR_TYPE );
-            return;
-        }
-        
-        final String ver = config.getAttribute( ATTR_VERSION );
-
-        if( ver == null )
-        {
-            reportMissingAttribute( config, ATTR_VERSION );
-            return;
-        }
-        
-        final RuntimeComponentType rct 
-            = (RuntimeComponentType) runtimeComponentTypes.get( type );
-        
-        if( rct == null )
-        {
-            final String msg
-                = NLS.bind( Resources.runtimeComponentTypeNotDefined, type ) +
-                  NLS.bind( Resources.usedInPlugin, config.getContributor().getName() );
-            
-            FacetCorePlugin.log( msg );
-            
-            return;
-        }
-        
-        final RuntimeComponentVersion rcv = new RuntimeComponentVersion();
-        
-        rcv.setRuntimeComponentType( rct );
-        rcv.setVersionString( ver );
-        rcv.setPluginId( config.getContributor().getName() );
-        
-        rct.addVersion( rcv );
-    }
-    
-    /**
-     * Pre-computes the tables that describe how versions of runtime components
-     * compare to each other. This allows the IRuntimeComponentVersion.compareTo() 
-     * operation, which is called rather frequently, to be reduced to a hash 
-     * table lookup instead of having to do a parse and comparison of two 
-     * version strings.
-     */
-    
-    private static void calculateVersionComparisonTables()
-    {
-        final List<IRuntimeComponentType> badRuntimeComponentTypes 
-            = new ArrayList<IRuntimeComponentType>();
-        
-        for( IRuntimeComponentType rct : runtimeComponentTypes )
-        {
-            try
-            {
-                final Comparator<String> comp = rct.getVersionComparator();
-                
-                final List<IRuntimeComponentVersion> versions 
-                    = new ArrayList<IRuntimeComponentVersion>( rct.getVersions() );
-                
-                final Map<IRuntimeComponentVersion,Map<IRuntimeComponentVersion,Integer>> compTables
-                    = new HashMap<IRuntimeComponentVersion,Map<IRuntimeComponentVersion,Integer>>();
-                
-                for( IRuntimeComponentVersion rcv : versions )
-                {
-                    compTables.put( rcv, new HashMap<IRuntimeComponentVersion,Integer>() );
-                }
-                
-                for( int i = 0, n = versions.size(); i < n; i++ )
-                {
-                    final IRuntimeComponentVersion iVer = versions.get( i );
-                    final String iVerStr = iVer.getVersionString();
-                    final Map<IRuntimeComponentVersion,Integer> iCompTable = compTables.get( iVer );
-                    
-                    for( int j = i + 1; j < n; j++ )
-                    {
-                        final IRuntimeComponentVersion jVer = versions.get( j );
-                        final String jVerStr = jVer.getVersionString();
-                        final Map<IRuntimeComponentVersion,Integer> jCompTable = compTables.get( jVer );
-                        
-                        final int result = comp.compare( iVerStr, jVerStr );
-                        
-                        iCompTable.put( jVer, new Integer( result ) );
-                        jCompTable.put( iVer, new Integer( result * -1 ) );
-                    }
-                }
-                
-                for( Map.Entry<IRuntimeComponentVersion,Map<IRuntimeComponentVersion,Integer>> entry
-                     : compTables.entrySet() )
-                {
-                    final RuntimeComponentVersion rcv = (RuntimeComponentVersion) entry.getKey();
-                    rcv.setComparisonTable( entry.getValue() );
-                }
-            }
-            catch( Exception e )
-            {
-                // The failure here is due to the problem loading the provided
-                // version comparator or due to the problem comparing the
-                // version string. In either case, we log the exception and
-                // remove all traces of this runtime component type from the 
-                // system to keep a faulty runtime component type from dragging
-                // down the entire system.
-                
-                FacetCorePlugin.log( e );
-                badRuntimeComponentTypes.add( rct );
-            }
-        }
-        
-        for( IRuntimeComponentType rct : badRuntimeComponentTypes )
-        {
-            runtimeComponentTypes.remove( rct );
-        }
-    }
-    
-    private static void readAdapter( final IConfigurationElement config )
-    {
-        IRuntimeComponentType rctype = null;
-        IRuntimeComponentVersion rcversion = null;
-        String factory = null;
-        final List<String> types = new ArrayList<String>();
-        
-        final IConfigurationElement[] children = config.getChildren();
-        
-        for( int i = 0; i < children.length; i++ )
-        {
-            final IConfigurationElement child = children[ i ];
-            final String childName = child.getName();
-            
-            if( childName.equals( EL_RUNTIME_COMPONENT ) )
-            {
-                final String id = child.getAttribute( ATTR_ID );
-
-                if( id == null )
-                {
-                    reportMissingAttribute( child, ATTR_ID );
-                    return;
-                }
-                
-                if( ! isRuntimeComponentTypeDefined( id ) )
-                {
-                    final String msg
-                        = NLS.bind( Resources.runtimeComponentTypeNotDefined, id ) +
-                          NLS.bind( Resources.usedInPlugin, 
-                                    child.getContributor().getName() );
-                    
-                    FacetCorePlugin.log( msg );
-                    
-                    return;
-                }
-                
-                rctype = getRuntimeComponentType( id );
-                
-                final String version = child.getAttribute( ATTR_VERSION );
-                
-                if( version != null )
-                {
-                    if( ! rctype.hasVersion( version ) )
-                    {
-                        String msg
-                            = NLS.bind( Resources.runtimeComponentVersionNotDefined,
-                                        id, version );
-                        
-                        msg += NLS.bind( Resources.usedInPlugin, 
-                                         config.getContributor().getName() );
-                        
-                        FacetCorePlugin.log( msg );
-                        
-                        return;
-                    }
-                    
-                    rcversion = rctype.getVersion( version );
-                }
-            }
-            else if( childName.equals( EL_FACTORY ) )
-            {
-                factory = child.getAttribute( ATTR_CLASS );
-
-                if( factory == null )
-                {
-                    reportMissingAttribute( child, ATTR_CLASS );
-                    return;
-                }
-            }
-            else if( childName.equals( ATTR_TYPE ) )
-            {
-                final String type = child.getAttribute( ATTR_CLASS );
-
-                if( type == null )
-                {
-                    reportMissingAttribute( child, ATTR_CLASS );
-                    return;
-                }
-                else
-                {
-                    types.add( type );
-                }
-            }
-        }
-        
-        final Set<IRuntimeComponentVersion> versions;
-        
-        if( rcversion == null )
-        {
-            versions = rctype.getVersions();
-        }
-        else
-        {
-            versions = Collections.singleton( rcversion );
-        }
-        
-        final String plugin = config.getContributor().getName();
-        
-        for( IRuntimeComponentVersion rcv : versions )
-        {
-            final RuntimeComponentVersion v = (RuntimeComponentVersion) rcv;
-            
-            for( String type : types )
-            {
-                v.addAdapterFactory( type, plugin, factory );
-            }
-        }
-    }
-    
-    private static void readMapping( final IConfigurationElement config )
-    {
-        final Mapping m = new Mapping();
-        final IConfigurationElement[] children = config.getChildren();
-        
-        for( int i = 0; i < children.length; i++ )
-        {
-            final IConfigurationElement child = children[ i ];
-            final String childName = child.getName();
-            
-            if( childName.equals( EL_FACET ) )
-            {
-                final IProjectFacet f = readProjectFacetRef( child );
-                
-                if( f == null )
-                {
-                    continue;
-                }
-                
-                final String v = child.getAttribute( ATTR_VERSION );
-                VersionExpr<ProjectFacetVersion> expr = null;
-                
-                if( v != null )
-                {
-                    try
-                    {
-                        final String pluginId = config.getContributor().getName();
-                        expr = new VersionExpr<ProjectFacetVersion>( f, v, pluginId );
-                    }
-                    catch( CoreException e )
-                    {
-                        FacetCorePlugin.log( e.getStatus() );
-                        continue;
-                    }
-                }
-                
-                m.facets.put( f, expr );
-            }
-            else if( childName.equals( EL_RUNTIME_COMPONENT ) )
-            {
-                if( child.getAttribute( ANY ) == null )
-                {
-                    final IRuntimeComponentType rct 
-                        = readRuntimeComponentTypeRef( child );
-                    
-                    if( rct == null )
-                    {
-                        continue;
-                    }
-                    
-                    final String v = child.getAttribute( ATTR_VERSION );
-                    VersionExpr<RuntimeComponentVersion> expr = null;
-                    
-                    if( v != null )
-                    {
-                        try
-                        {
-                            final String pluginId = config.getContributor().getName();
-                            expr = new VersionExpr<RuntimeComponentVersion>( rct, v, pluginId );
-                        }
-                        catch( CoreException e )
-                        {
-                            FacetCorePlugin.log( e.getStatus() );
-                            continue;
-                        }
-                    }
-                    
-                    m.runtimeComponents.put( rct, expr );
-                }
-            }
-        }
-        
-        mappings.add( m );
-    }
-    
-    private static void readBridgesExtensions()
-    {
-        final IExtensionRegistry registry = Platform.getExtensionRegistry();
-        
-        final IExtensionPoint point 
-            = registry.getExtensionPoint( FacetCorePlugin.PLUGIN_ID, 
-                                          BRIDGES_EXTENSION_ID );
-        
-        if( point == null )
-        {
-            throw new RuntimeException( "Extension point not found!" ); //$NON-NLS-1$
-        }
-        
-        final List<IConfigurationElement> cfgels = new ArrayList<IConfigurationElement>();
-        
-        for( IExtension extension : point.getExtensions() )
-        {
-            for( IConfigurationElement cfgel : extension.getConfigurationElements() )
-            {
-                cfgels.add( cfgel );
-            }
-        }
-
-        for( IConfigurationElement config : cfgels )
-        {
-            if( config.getName().equals( EL_BRIDGE ) )
-            {
-                final String id = config.getAttribute( ATTR_ID );
-
-                if( id == null )
-                {
-                    reportMissingAttribute( config, ATTR_ID );
-                    return;
-                }
-                
-                final String clname = config.getAttribute( ATTR_CLASS );
-
-                if( clname == null )
-                {
-                    reportMissingAttribute( config, ATTR_CLASS );
-                    return;
-                }
-                
-                final String pluginId = config.getContributor().getName();
-                final IRuntimeBridge br = instantiate( pluginId, clname, IRuntimeBridge.class );
-                
-                if( br == null )
-                {
-                    continue;
-                }
-                
-                bridges.put( id, br );
-            }
-        }
-    }
-    
-    private static IRuntimeComponentType readRuntimeComponentTypeRef( final IConfigurationElement config )
-    {
-        final String id = config.getAttribute( ATTR_ID );
-        
-        if( id == null )
-        {
-            reportMissingAttribute( config, ATTR_ID );
-            return null;
-        }
-        
-        if( ! isRuntimeComponentTypeDefined( id ) )
-        {
-            final String msg
-                = NLS.bind( Resources.runtimeComponentTypeNotDefined, id ) +
-                  NLS.bind( Resources.usedInPlugin, 
-                            config.getContributor().getName() );
-            
-            FacetCorePlugin.log( msg );
-            
-            return null;
-        }
-        
-        return getRuntimeComponentType( id );
-    }
-    
-    private static IProjectFacet readProjectFacetRef( final IConfigurationElement config )
-    {
-        final String id = config.getAttribute( ATTR_ID );
-
-        if( id == null )
-        {
-            reportMissingAttribute( config, ATTR_ID );
-            return null;
-        }
-        
-        if( ! ProjectFacetsManager.isProjectFacetDefined( id ) )
-        {
-            ProblemLog.reportMissingFacet( id, config.getContributor().getName() );
-            return null;
-        }
-        
-        return ProjectFacetsManager.getProjectFacet( id );
-    }
-    
-    private static void reportMissingAttribute( final IConfigurationElement el,
-                                                final String attribute )
-    {
-        final String[] params 
-            = new String[] { el.getContributor().getName(), el.getName(), attribute };
-        
-        final String msg = NLS.bind( Resources.missingAttribute, params ); 
-    
-        FacetCorePlugin.log( msg );
-    }
-    
-    private static final class Mapping
-    {
-        public final Map<IProjectFacet,VersionExpr<ProjectFacetVersion>> facets 
-            = new HashMap<IProjectFacet,VersionExpr<ProjectFacetVersion>>();
-        
-        public final Map<IRuntimeComponentType,VersionExpr<RuntimeComponentVersion>> runtimeComponents 
-            = new HashMap<IRuntimeComponentType,VersionExpr<RuntimeComponentVersion>>();
-        
-        private Set<IProjectFacetVersion> getSupportedFacets( final IRuntimeComponent rc )
-        
-            throws CoreException
-            
-        {
-            final IRuntimeComponentType rct = rc.getRuntimeComponentType();
-            final IRuntimeComponentVersion rcv = rc.getRuntimeComponentVersion();
-            
-            if( this.runtimeComponents.containsKey( rct ) )
-            {
-                final VersionExpr<RuntimeComponentVersion> expr = this.runtimeComponents.get( rct );
-                
-                if( expr != null && ! expr.check( rcv ) )
-                {
-                    return Collections.emptySet();
-                }
-            }
-            else if( ! this.runtimeComponents.isEmpty() )
-            {
-                return Collections.emptySet();
-            }
-            
-            final Set<IProjectFacetVersion> result = new HashSet<IProjectFacetVersion>();
-            
-            for( Map.Entry<IProjectFacet,VersionExpr<ProjectFacetVersion>> entry 
-                 : this.facets.entrySet() )
-            {
-                final IProjectFacet f = entry.getKey();
-                final VersionExpr<ProjectFacetVersion> expr = entry.getValue();
-                
-                for( IProjectFacetVersion fv : f.getVersions() )
-                {
-                    if( expr == null || expr.check( fv ) )
-                    {
-                        result.add( fv );
-                    }
-                }
-            }
-            
-            return result;
-        }
-    }
-    
-    private static final class RuntimeValidationThread
-
-        extends Thread
-        
-    {
-        private boolean isAborted;
-        private Map<String,IStatus> validationResults;
-        
-        public RuntimeValidationThread()
-        {
-            this.isAborted = false;
-            this.validationResults = new HashMap<String,IStatus>();
-        }
-        
-        private IStatus getValidationResult( final IRuntime runtime )
-        {
-            synchronized( this.validationResults )
-            {
-                return this.validationResults.get( runtime.getName() );
-            }
-        }
-        
-        private void setValidationResult( final IRuntime runtime,
-                                          final IStatus validationResult )
-        {
-            synchronized( this.validationResults )
-            {
-                this.validationResults.put( runtime.getName(), validationResult );
-            }
-        }
-        
-        @Override
-        public void run()
-        {
-            while( ! this.isAborted )
-            {
-                for( IRuntime runtime : RuntimeManager.getRuntimes() )
-                {
-                    final IStatus oldResult = getValidationResult( runtime );
-                    final IStatus newResult = runtime.validate( new NullProgressMonitor() );
-                    
-                    if( oldResult == null || ! oldResult.getMessage().equals( newResult.getMessage() ) )
-                    {
-                        setValidationResult( runtime, newResult );
-                        
-                        final IRuntimeLifecycleEvent event
-                            = new ValidationStatusChangedEvent( runtime, oldResult, newResult );
-                        
-                        runtimeLifecycleListenerRegistry.notifyListeners( event );
-                    }
-                }
-
-                try
-                {
-                    Thread.sleep( 1000 );
-                }
-                catch( InterruptedException e ) {}
-            }
-        }
-        
-        public void terminate()
-        {
-            this.isAborted = true;
-        }
-    }
-
-    public static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String missingAttribute;
-        public static String runtimeComponentTypeNotDefined;
-        public static String runtimeComponentVersionNotDefined;
-        public static String runtimeNotDefined;
-        public static String usedInPlugin;
-        
-        static
-        {
-            initializeMessages( RuntimeManagerImpl.class.getName(), 
-                                Resources.class );
-        }
-    }
-    
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeManagerImpl.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeManagerImpl.properties
deleted file mode 100644
index 23373d3..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeManagerImpl.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-missingAttribute = An extension element <{1}> in plugin {0} is missing a required attribute {2}.
-runtimeComponentTypeNotDefined = Runtime component type {0} has not been defined.
-runtimeComponentVersionNotDefined = Version {1} of runtime component type {0} has not been defined.
-runtimeNotDefined = Runtime {0} has not been defined.
-usedInPlugin = \ It is used in plugin {0}.
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/UnknownRuntime.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/UnknownRuntime.java
deleted file mode 100644
index 1ad27f8..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/UnknownRuntime.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime.internal;
-
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponent;
-
-/**
- * Used to represent a runtime that's referenced by a project, but is not
- * defined in the workspace.
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class UnknownRuntime
-
-    extends AbstractRuntime
-    
-{
-    public UnknownRuntime( final String name )
-    {
-        setName( name );
-    }
-    
-    public Map<String,String> getProperties()
-    {
-        return Collections.emptyMap();
-    }
-
-    public List<IRuntimeComponent> getRuntimeComponents()
-    {
-        return Collections.emptyList();
-    }
-
-    public boolean supports( final IProjectFacetVersion fv )
-    {
-        return true;
-    }
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/AbstractFilter.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/AbstractFilter.java
deleted file mode 100644
index 67d46ad..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/AbstractFilter.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.util;
-
-import org.eclipse.wst.common.project.facet.core.util.IFilter.IFilterEvent.Type;
-import org.eclipse.wst.common.project.facet.core.util.internal.AbstractListenerRegistry;
-
-/**
- * @since 3.0
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public abstract class AbstractFilter<T>
-
-    implements IFilter<T>
-
-{
-    private FilterListenerRegistry<T> listeners = new FilterListenerRegistry<T>();
-    
-    public void addListener( final IFilterListener<T> listener,
-                             final IFilterEvent.Type... types )
-    {
-        this.listeners.addListener( listener, types );
-    }
-    
-    public void removeListener( final IFilterListener<T> listener )
-    {
-        this.listeners.removeListener( listener );
-    }
-    
-    protected void notifyListeners( final IFilterEvent<T> event )
-    {
-        this.listeners.notifyListeners( event.getType(), event );
-    }
-    
-    private static final class FilterListenerRegistry<T>
-    
-        extends AbstractListenerRegistry<Type,IFilterEvent<T>,IFilterListener<T>>
-    
-    {
-        public FilterListenerRegistry()
-        {
-            super( Type.class );
-        }
-
-        @Override
-        protected void notifyListener( final IFilterListener<T> listener,
-                                       final IFilterEvent<T> event )
-        {
-            listener.handleEvent( event );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/EventListenerRegistry.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/EventListenerRegistry.java
deleted file mode 100644
index 37b87f7..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/EventListenerRegistry.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.util;
-
-import java.util.EnumMap;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.CopyOnWriteArraySet;
-
-import org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin;
-
-/**
- * @since 3.0
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class EventListenerRegistry<T extends Enum<T>,E>
-{
-    private final Class<T> eventTypeClass;
-    private final Map<T,Set<IEventListener<E>>> listeners;
-    
-    public EventListenerRegistry( final Class<T> eventTypeClass )
-    {
-        this.eventTypeClass = eventTypeClass;
-        this.listeners = new EnumMap<T,Set<IEventListener<E>>>( this.eventTypeClass );
-        
-        for( T t : this.eventTypeClass.getEnumConstants() )
-        {
-            this.listeners.put( t, new CopyOnWriteArraySet<IEventListener<E>>() );
-        }
-    }
-    
-    public void addListener( final IEventListener<E> listener,
-                             final T... types )
-    {
-        if( listener == null || types == null )
-        {
-            throw new IllegalArgumentException();
-        }
-        
-        for( T type : ( types.length > 0 ? types : this.eventTypeClass.getEnumConstants() ) )
-        {
-            this.listeners.get( type ).add( listener );
-        }
-    }
-    
-    public void removeListener( final IEventListener<E> listener )
-    {
-        if( listener == null )
-        {
-            throw new IllegalArgumentException();
-        }
-        
-        for( Set<IEventListener<E>> listeners : this.listeners.values() )
-        {
-            listeners.remove( listener );
-        }
-    }
-    
-    public void notifyListeners( final T eventType,
-                                 final E event )
-    {
-        for( IEventListener<E> listener : this.listeners.get( eventType ) )
-        {
-            try
-            {
-                listener.handleEvent( event );
-            }
-            catch( Exception e )
-            {
-                FacetCorePlugin.log( e );
-            }
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/FilterEvent.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/FilterEvent.java
deleted file mode 100644
index bd02c1e..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/FilterEvent.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.util;
-
-/**
- * @since 3.0
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public class FilterEvent<T>
-
-    implements IFilter.IFilterEvent<T>
-{
-    private final IFilter<T> filter;
-    private final Type eventType;
-    
-    public FilterEvent( final IFilter<T> filter,
-                        final Type eventType )
-    {
-        this.filter = filter;
-        this.eventType = eventType;
-    }
-    
-    public IFilter<T> getFilter()
-    {
-        return this.filter;
-    }
-
-    public Type getType()
-    {
-        return this.eventType;
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/IEventListener.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/IEventListener.java
deleted file mode 100644
index 4ece524..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/IEventListener.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.util;
-
-/**
- * @since 3.0
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public interface IEventListener<E>
-{
-    void handleEvent( E event );
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/IFilter.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/IFilter.java
deleted file mode 100644
index f776c10..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/IFilter.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.util;
-
-/**
- * Interface for implementing filters for various object types.
- * 
- * @since 3.0
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public interface IFilter<T>
-{
-    interface IFilterEvent<T>
-    {
-        enum Type
-        {
-            FILTER_CHANGED
-        }
-        
-        Type getType();
-        IFilter<T> getFilter();
-    }
-    
-    interface IFilterListener<T>
-    {
-        void handleEvent( IFilterEvent<T> event );
-    }
-    
-    /**
-     * The method that is called to let the filter make the determination whether an object
-     * passes through the filter.
-     * 
-     * @param object the object that the filter should check
-     * @return <code>true</code> if the object passes through the filter and 
-     *   <code>false</code> otherwise
-     */
-    
-    boolean check( T object );
-    
-    void addListener( IFilterListener<T> listener,
-                      IFilterEvent.Type... types );
-    
-    void removeListener( IFilterListener<T> listener );
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/AbstractListenerRegistry.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/AbstractListenerRegistry.java
deleted file mode 100644
index 49ef53c..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/AbstractListenerRegistry.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.util.internal;
-
-import java.util.EnumMap;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.CopyOnWriteArraySet;
-
-import org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public abstract class AbstractListenerRegistry<T extends Enum<T>,E,L>
-{
-    private final Class<T> eventTypeClass;
-    private final Map<T,Set<L>> listeners;
-    
-    public AbstractListenerRegistry( final Class<T> eventTypeClass )
-    {
-        this.eventTypeClass = eventTypeClass;
-        this.listeners = new EnumMap<T,Set<L>>( this.eventTypeClass );
-        
-        for( T t : this.eventTypeClass.getEnumConstants() )
-        {
-            this.listeners.put( t, new CopyOnWriteArraySet<L>() );
-        }
-    }
-    
-    public void addListener( final L listener,
-                             final T... types )
-    {
-        if( listener == null || types == null )
-        {
-            throw new IllegalArgumentException();
-        }
-        
-        for( T type : ( types.length > 0 ? types : this.eventTypeClass.getEnumConstants() ) )
-        {
-            this.listeners.get( type ).add( listener );
-        }
-    }
-    
-    public void removeListener( final L listener )
-    {
-        if( listener == null )
-        {
-            throw new IllegalArgumentException();
-        }
-        
-        for( Set<L> listeners : this.listeners.values() )
-        {
-            listeners.remove( listener );
-        }
-    }
-    
-    public void notifyListeners( final T eventType,
-                                 final E event )
-    {
-        for( L listener : this.listeners.get( eventType ) )
-        {
-            try
-            {
-                notifyListener( listener, event );
-            }
-            catch( Exception e )
-            {
-                FacetCorePlugin.log( e );
-            }
-        }
-    }
-    
-    protected abstract void notifyListener( final L listener,
-                                            final E event );
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/CollectionsUtil.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/CollectionsUtil.java
deleted file mode 100644
index f4c2cd3..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/CollectionsUtil.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.util.internal;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class CollectionsUtil
-{
-    private CollectionsUtil() {}
-    
-    @SuppressWarnings( "unchecked" )
-    private static final Comparator<Comparable<? super Comparable>> INVERTING_COMPARATOR 
-        = new Comparator<Comparable<? super Comparable>>()
-    {
-        public int compare( final Comparable<? super Comparable> obj1,
-                            final Comparable<? super Comparable> obj2 )
-        {
-            return obj2.compareTo( obj1 );
-        }
-    };
-
-    /**
-     * Returns a comparator that simply inverts the results of comparing to 
-     * <code>Comparable</code> objects. This is useful for sorting a list in
-     * reverse of it's natural order.
-     *  
-     * @return an inverting comparator
-     */
-    
-    @SuppressWarnings( "unchecked" )
-    public static <T extends Comparable> Comparator<T> getInvertingComparator()
-    {
-        return (Comparator<T>) INVERTING_COMPARATOR;
-    }
-    
-    public static <T> Set<T> set( final T... entries )
-    {
-        switch( entries.length )
-        {
-            case 0:
-            {
-                return Collections.emptySet();
-            }
-            case 1:
-            {
-                return Collections.singleton( entries[ 0 ] );
-            }
-            default:
-            {
-                final Set<T> result = new HashSet<T>();
-                
-                for( T entry : entries )
-                {
-                    result.add( entry );
-                }
-                
-                return result;
-            }
-        }
-    }
-
-    public static <T> List<T> list( final T... entries )
-    {
-        switch( entries.length )
-        {
-            case 0:
-            {
-                return Collections.emptyList();
-            }
-            case 1:
-            {
-                return Collections.singletonList( entries[ 0 ] );
-            }
-            default:
-            {
-                final List<T> result = new ArrayList<T>();
-                
-                for( T entry : entries )
-                {
-                    result.add( entry );
-                }
-                
-                return result;
-            }
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/DomUtil.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/DomUtil.java
deleted file mode 100644
index 9f5561b..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/DomUtil.java
+++ /dev/null
@@ -1,391 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.util.internal;
-
-import java.io.BufferedInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Reader;
-import java.io.StringReader;
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerConfigurationException;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.xml.sax.EntityResolver;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class DomUtil 
-{
-    public static Document doc( final Reader r )
-    {
-        final DocumentBuilder docbuilder = docbuilder();
-        
-        try
-        {
-            return docbuilder.parse( new InputSource( r ) );
-        }
-        catch( IOException e )
-        {
-            throw new XmlParseException( e );
-        }
-        catch( SAXParseException e )
-        {
-            throw new XmlParseException( e );
-        }
-        catch( SAXException e )
-        {
-            throw new XmlParseException( e );
-        }
-    }
-
-    public static Document doc( final InputStream stream )
-    {
-        final DocumentBuilder docbuilder = docbuilder();
-        
-        try
-        {
-            return docbuilder.parse( stream );
-        }
-        catch( IOException e )
-        {
-            throw new XmlParseException( e );
-        }
-        catch( SAXParseException e )
-        {
-            throw new XmlParseException( e );
-        }
-        catch( SAXException e )
-        {
-            throw new XmlParseException( e );
-        }
-    }
-    
-    public static Document doc( final String str )
-    {
-        return doc( new StringReader( str ) );
-    }
-    
-    public static Document doc( final File f )
-    {
-        InputStream stream = null;
-
-        try
-        {
-            stream = new BufferedInputStream( new FileInputStream( f ) );
-            return doc( stream );
-        }
-        catch( IOException e )
-        {
-            throw new XmlParseException( e );
-        }
-        finally
-        {
-            if( stream != null )
-            {
-                try
-                {
-                    stream.close();
-                }
-                catch( IOException e ) {}
-            }
-        }
-    }
-    
-    public static Document doc()
-    {
-        return docbuilder().newDocument();
-    }
-    
-    public static Element root( final Reader r )
-    {
-        return doc( r ).getDocumentElement();
-    }
-    
-    public static Element root( final String str )
-    {
-        return doc( str ).getDocumentElement();
-    }
-    
-    public static Element root( final File f )
-    {
-        return doc( f ).getDocumentElement();
-    }
-
-    public static Element element( final Element el,
-                                   final String name )
-    {
-        final NodeList nodes = el.getChildNodes();
-        
-        for( int i = 0, n = nodes.getLength(); i < n; i++ )
-        {
-            final Node node = nodes.item( i );
-            
-            if( node.getNodeType() == Node.ELEMENT_NODE &&
-                basename( node.getNodeName() ).equals( name ) )
-            {
-                return (Element) node;
-            }
-        }
-        
-        return null;
-    }
-    
-    public static Iterable<Element> elements( final Element el )
-    {
-        return new ElementsIterator( el.getChildNodes() );
-    }
-    
-    public static Iterable<Element> elements( final Element el,
-                                              final String name )
-    {
-        return new ElementsIterator( el.getChildNodes(), name );
-    }
-    
-    public static Iterable<Element> elements( final NodeList nodes )
-    {
-        return new ElementsIterator( nodes );
-    }
-
-    public static Iterable<Element> elements( final NodeList nodes,
-                                              final String name )
-    {
-        return new ElementsIterator( nodes, name );
-    }
-    
-    public static final class ElementsIterator
-    
-        implements Iterator<Element>, Iterable<Element>
-        
-    {
-        private final NodeList nodes;
-        private final int length;
-        private final String name;
-        private int position;
-        private Element element;
-        
-        public ElementsIterator( final NodeList nodes )
-        {
-            this( nodes, null );
-        }
-        
-        public ElementsIterator( final NodeList nodes,
-                                 final String name )
-        {
-            this.nodes = nodes;
-            this.length = nodes.getLength();
-            this.position = -1;
-            this.name = name;
-            
-            advance();
-        }
-        
-        private void advance()
-        {
-            this.element = null;
-            this.position++;
-            
-            for( ; this.position < this.length && this.element == null; 
-                 this.position++ )
-            {
-                final Node node = this.nodes.item( this.position );
-                
-                if( node.getNodeType() == Node.ELEMENT_NODE &&
-                    ( this.name == null || 
-                      basename( node.getNodeName() ).equals( this.name ) ) )
-                {
-                    this.element = (Element) node;
-                }
-            }
-        }
-
-        public boolean hasNext() 
-        {
-            return ( this.element != null );
-        }
-
-        public Element next() 
-        {
-            final Element el = this.element;
-
-            if( el == null ) 
-            {
-                throw new NoSuchElementException();
-            }
-            
-            advance();
-            
-            return el;
-        }
-
-        public void remove() 
-        {
-            throw new UnsupportedOperationException();
-        }
-
-        public Iterator<Element> iterator() 
-        {
-            return this;
-        }
-    }
-    
-    public static String text( final Element el )
-    {
-        final NodeList nodes = el.getChildNodes();
-
-        String str = null;
-        StringBuilder buf = null;
-        
-        for( int i = 0, n = nodes.getLength(); i < n; i++ )
-        {
-            final Node node = nodes.item( i );
-            final short nodeType = node.getNodeType();
-            
-            if( nodeType == Node.TEXT_NODE || nodeType == Node.CDATA_SECTION_NODE )
-            {
-                final String val = node.getNodeValue();
-                
-                if( buf != null )
-                {
-                    buf.append( val );
-                }
-                else if( str != null )
-                {
-                    buf = new StringBuilder();
-                    buf.append( str );
-                    buf.append( val );
-                    
-                    str = null;
-                }
-                else
-                {
-                    str = val;
-                }
-            }
-        }
-        
-        if( buf != null )
-        {
-            return buf.toString();
-        }
-        else
-        {
-            return str;
-        }
-    }
-    
-    public static String text( final Element el,
-                               final String childElementName )
-    {
-        final Element childElement = element( el, childElementName );
-        
-        if( childElement == null )
-        {
-            return null;
-        }
-        else
-        {
-            return text( childElement );
-        }
-    }
-    
-    public static String basename( final String name )
-    {
-        final int colon = name.indexOf( ':' );
-        
-        if( colon != -1 )
-        {
-            return name.substring( colon + 1 );
-        }
-        else
-        {
-            return name;
-        }
-    }
-    
-    public static void write( final Document doc,
-                              final File file )
-    {
-        try
-        {
-            final DOMSource source = new DOMSource( doc );
-            final StreamResult result = new StreamResult( file );
-            
-            final TransformerFactory factory = TransformerFactory.newInstance();
-            final Transformer transformer = factory.newTransformer();
-            
-            transformer.transform( source, result );
-        }
-        catch( TransformerConfigurationException e )
-        {
-            throw new RuntimeException( e );
-        }
-        catch( TransformerException e )
-        {
-            throw new RuntimeException( e );
-        }
-    }
-    
-    private static DocumentBuilder docbuilder()
-    {
-        try
-        {
-            final DocumentBuilderFactory factory 
-                = DocumentBuilderFactory.newInstance();
-            
-            factory.setValidating( false );
-            factory.setNamespaceAware( true );
-            factory.setIgnoringComments( false );
-            
-            final DocumentBuilder builder = factory.newDocumentBuilder();
-            
-            builder.setEntityResolver
-            (
-                new EntityResolver()
-                {
-                    public InputSource resolveEntity( final String publicID, 
-                                                      final String systemID )
-                    {
-                        return new InputSource( new StringReader( "" ) ); //$NON-NLS-1$
-                    }
-                }
-            );
-            
-            return builder;
-        }
-        catch( ParserConfigurationException e )
-        {
-            throw new RuntimeException( e );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/FileUtil.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/FileUtil.java
deleted file mode 100644
index c066202..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/FileUtil.java
+++ /dev/null
@@ -1,442 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.util.internal;
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.UnsupportedEncodingException;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.Set;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin;
-import org.osgi.framework.Bundle;
-
-/**
- * Contains utility functions for dealing with files.
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class FileUtil
-{
-    public static final String UTF8_ENCODING = "UTF-8"; //$NON-NLS-1$
-    public static final String FILE_DOT_PROJECT = ".project"; //$NON-NLS-1$
-    
-    private FileUtil() {}
-    
-    public static void validateEdit( final IFile... files )
-    
-        throws CoreException
-        
-    {
-        final IWorkspace ws = ResourcesPlugin.getWorkspace();
-        final IStatus st = ws.validateEdit( files, IWorkspace.VALIDATE_PROMPT );
-        
-        if( st.getSeverity() == IStatus.ERROR )
-        {
-            throw new CoreException( st );
-        }
-    }
-    
-    public static boolean validateEdit( final Set<IFile> files )
-    {
-        final IFile[] filesArray = files.toArray( new IFile[ files.size() ] );
-        
-        Arrays.sort
-        ( 
-            filesArray, 
-            new Comparator<IFile>()
-            {
-                public int compare( final IFile file1, 
-                                    final IFile file2 )
-                {
-                    final String path1 = file1.getFullPath().toOSString();
-                    final String path2 = file2.getFullPath().toOSString();
-                    
-                    return path1.compareTo( path2 );
-                }
-            }
-        );
-        
-        final IWorkspace ws = ResourcesPlugin.getWorkspace();
-        final IStatus st = ws.validateEdit( filesArray, IWorkspace.VALIDATE_PROMPT );
-        
-        return ( st.getSeverity() != IStatus.ERROR );
-    }
-    
-    /**
-     * Copies a resource from a plugin to a destination in the workspace.
-     *
-     * @param pluginId the plugin id
-     * @param pathInPlugin the path of the resource within the plugin
-     * @param destination the destination path within the workspace
-     */
-    
-    public static void copyFromPlugin( final String pluginId,
-                                       final IPath pathInPlugin,
-                                       final IFile destination )
-
-        throws CoreException
-
-    {
-        copyFromPlugin( pluginId, pathInPlugin, destination.getLocation().toFile() );
-    }
-    
-    /**
-     * Copies a resource from a plugin to a destination in the workspace.
-     *
-     * @param bundle the plugin bundle
-     * @param pathInPlugin the path of the resource within the plugin
-     * @param destination the destination path within the workspace
-     */
-
-    public static void copyFromPlugin( final Bundle bundle,
-                                       final IPath pathInPlugin,
-                                       final IFile destination )
-
-        throws CoreException
-
-    {
-        copyFromPlugin( bundle, pathInPlugin, destination.getLocation().toFile() );
-    }
-    
-    /**
-     * Copies a resource from a plugin to a destination on the file system.
-     *
-     * @param pluginId the plugin id
-     * @param pathInPlugin the path of the resource within the plugin
-     * @param destination the destination path within the workspace
-     */
-    
-    public static void copyFromPlugin( final String pluginId,
-                                       final IPath pathInPlugin,
-                                       final File destination )
-    
-        throws CoreException
-        
-    {
-        final Bundle bundle = Platform.getBundle( pluginId );
-        copyFromPlugin( bundle, pathInPlugin, destination );
-    }
-    
-    /**
-     * Copies a resource from a plugin to a destination on the file system.
-     *
-     * @param bundle the plugin bundle
-     * @param pathInPlugin the path of the resource within the plugin
-     * @param destination the destination path within the workspace
-     */
-
-    public static void copyFromPlugin( final Bundle bundle,
-                                       final IPath pathInPlugin,
-                                       final File destination )
-    
-        throws CoreException
-        
-    {
-        final InputStream contents = readFileFromPlugin( bundle, pathInPlugin );
-        
-        try
-        {
-            writeFile( destination, contents );
-        }
-        finally
-        {
-            try
-            {
-                contents.close();
-            }
-            catch( Exception e ) {}
-        }
-    }
-    
-    public static InputStream readFileFromPlugin( final Bundle bundle,
-                                                  final IPath pathInPlugin )
-    
-        throws CoreException
-        
-    {
-        try
-        {
-            return FileLocator.openStream( bundle, pathInPlugin, false );
-        }
-        catch( IOException e )
-        {
-            throw new CoreException( FacetCorePlugin.createErrorStatus( e.getMessage(), e ) );
-        }
-    }
-    
-    public static IFile getWorkspaceFile( final File f )
-    {
-        final IWorkspace ws = ResourcesPlugin.getWorkspace();
-        final IWorkspaceRoot wsroot = ws.getRoot();
-        final IPath path = new Path( f.getAbsolutePath() );
-        
-        final IFile[] wsFiles = wsroot.findFilesForLocation( path );
-        
-        if( wsFiles.length > 0 )
-        {
-            return wsFiles[ 0 ];
-        }
-        
-        return null;
-    }
-    
-    public static IContainer getWorkspaceContainer( final File f )
-    {
-        final IWorkspace ws = ResourcesPlugin.getWorkspace();
-        final IWorkspaceRoot wsroot = ws.getRoot();
-        final IPath path = new Path( f.getAbsolutePath() );
-        
-        final IContainer[] wsContainers = wsroot.findContainersForLocation( path );
-        
-        if( wsContainers.length > 0 )
-        {
-            return wsContainers[ 0 ];
-        }
-        
-        return null;
-    }
-    
-    public static void mkdirs( final File f )
-    
-        throws CoreException
-        
-    {
-        if( f.exists() )
-        {
-            if( f.isFile() )
-            {
-                final String msg
-                    = NLS.bind( Resources.locationIsFile, 
-                                f.getAbsolutePath() );
-                
-                throw new CoreException( FacetCorePlugin.createErrorStatus( msg ) );
-            }
-        }
-        else
-        {
-            mkdirs( f.getParentFile() );
-            
-            final IContainer wsContainer = getWorkspaceContainer( f );
-            
-            if( wsContainer != null )
-            {
-                // Should be a folder...
-                
-                final IFolder iFolder = (IFolder) wsContainer;
-                iFolder.create( true, true, null );
-            }
-            else
-            {
-                final boolean isSuccessful = f.mkdir();
-                
-                if( ! isSuccessful )
-                {
-                    final String msg
-                        = NLS.bind( Resources.failedToCreateDirectory, 
-                                    f.getAbsolutePath() );
-                    
-                    throw new CoreException( FacetCorePlugin.createErrorStatus( msg ) );
-                }
-            }
-        }
-    }
-    
-    public static void writeFile( final IFile f,
-                                  final String contents )
-    
-        throws CoreException
-        
-    {
-        writeFile( f.getLocation().toFile(), contents );
-    }
-    
-    public static void writeFile( final IFile f,
-                                  final byte[] contents )
-    
-        throws CoreException
-        
-    {
-        writeFile( f.getLocation().toFile(), contents );
-    }
-
-    public static void writeFile( final IFile f,
-                                  final InputStream contents )
-    
-        throws CoreException
-        
-    {
-        writeFile( f.getLocation().toFile(), contents );
-    }
-
-    public static void writeFile( final File f,
-                                  final String contents )
-    
-        throws CoreException
-        
-    {
-        try
-        {
-            writeFile( f, contents.getBytes( UTF8_ENCODING ) );
-        }
-        catch( UnsupportedEncodingException e )
-        {
-            throw new RuntimeException( e );
-        }
-    }
-    
-    public static void writeFile( final File f,
-                                  final byte[] contents )
-    
-        throws CoreException
-        
-    {
-        writeFile( f, new ByteArrayInputStream( contents ) );
-    }
-    
-    public static void writeFile( final File f,
-                                  final InputStream contents )
-    
-        throws CoreException
-        
-    {
-        if( f.exists() )
-        {
-            if( f.isDirectory() )
-            {
-                final String msg
-                    = NLS.bind( Resources.locationIsDirectory, 
-                                f.getAbsolutePath() );
-                
-                throw new CoreException( FacetCorePlugin.createErrorStatus( msg ) );
-            }
-        }
-        else
-        {
-            mkdirs( f.getParentFile() );
-        }
-        
-        final IFile wsfile = getWorkspaceFile( f );
-
-        if( wsfile != null )
-        {
-            validateEdit( new IFile[] { wsfile } );
-            
-            if( wsfile.exists() )
-            {
-                wsfile.setContents( contents, true, false, null );
-            }
-            else
-            {
-                wsfile.create( contents, true, null );
-            }
-        }
-        else
-        {
-            if( f.exists() && ! f.canWrite())
-            {
-                final String msg
-                    = NLS.bind( Resources.cannotWriteFile, 
-                                f.getAbsolutePath() );
-                
-                throw new CoreException( FacetCorePlugin.createErrorStatus( msg ) );
-            }
-            
-            final byte[] buffer = new byte[ 1024 ];
-            FileOutputStream out = null;
-            
-            try
-            {
-                out = new FileOutputStream( f );
-                
-                for( int count; ( count = contents.read( buffer ) ) != -1; )
-                {
-                    out.write( buffer, 0, count );
-                }
-                
-                out.flush();
-            }
-            catch( IOException e )
-            {
-                final String msg 
-                    = NLS.bind( Resources.failedWhileWriting, f.getAbsolutePath() );
-                
-                throw new CoreException( FacetCorePlugin.createErrorStatus( msg, e ) );
-            }
-            finally
-            {
-                if( out != null )
-                {
-                    try
-                    {
-                        out.close();
-                    }
-                    catch( IOException e ) {}
-                }
-            }
-        }
-    }
-    
-    public static void deleteFile( final File file )
-    
-        throws CoreException
-        
-    {
-        final IFile wsfile = getWorkspaceFile( file );
-        
-        if( wsfile != null )
-        {
-            wsfile.delete( true, null );
-        }
-        else
-        {
-            file.delete();
-        }
-    }
-
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String failedWhileWriting;
-        public static String cannotWriteFile;
-        public static String failedToCreateDirectory;
-        public static String locationIsDirectory;
-        public static String locationIsFile;
-        
-        static
-        {
-            initializeMessages( FileUtil.class.getName(), 
-                                Resources.class );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/FileUtil.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/FileUtil.properties
deleted file mode 100644
index 3ae5186..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/FileUtil.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-failedWhileWriting = Failed while writing file "{0}".
-cannotWriteFile = File "{0}" is not writable. 
-failedToCreateDirectory = Failed to create directory "{0}".
-locationIsDirectory = Location "{0}" is a directory.
-locationIsFile = Location "{0}" is a file.
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/IndexedSet.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/IndexedSet.java
deleted file mode 100644
index a8e9ab3..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/IndexedSet.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.util.internal;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class IndexedSet<K,V>
-
-    extends HashSet<V>
-    
-{
-    private static final long serialVersionUID = 1L;
-    private final Set<V> unmodifiable;
-    private final Map<K,V> index;
-    
-    public IndexedSet()
-    {
-        this.unmodifiable = Collections.unmodifiableSet( this );
-        this.index = new HashMap<K,V>();
-    }
-    
-    public void add( final K key,
-                     final V value )
-    {
-        remove( this.index.get( key ) );
-        add( value );
-        this.index.put( key, value );
-    }
-    
-    public boolean delete( final K key )
-    {
-        final Object value = this.index.get( key );
-        
-        if( value == null )
-        {
-            return false;
-        }
-        else
-        {
-            remove( value );
-            this.index.remove( key );
-            return true;
-        }
-    }
-    
-    public V get( final K key )
-    {
-        return this.index.get( key );
-    }
-    
-    public boolean containsKey( final K key )
-    {
-        return this.index.containsKey( key );
-    }
-    
-    public Set<V> getUnmodifiable()
-    {
-        return this.unmodifiable;
-    }
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/MiscUtil.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/MiscUtil.java
deleted file mode 100644
index 1abbeb1..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/MiscUtil.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.util.internal;
-
-/**
- * Contains miscellaneous utility functions.
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class MiscUtil
-{
-    public static boolean equal( final Object obj1,
-                                 final Object obj2 )
-    {
-        if( obj1 == null && obj2 == null )
-        {
-            return true;
-        }
-        else if( obj1 == null || obj2 == null )
-        {
-            return false;
-        }
-        else
-        {
-            return obj1.equals( obj2 );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/ObjectReference.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/ObjectReference.java
deleted file mode 100644
index fecdce2..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/ObjectReference.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.util.internal;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class ObjectReference<T>
-{
-    private T object;
-    
-    public ObjectReference()
-    {
-        this.object = null;
-    }
-    
-    public ObjectReference( final T object )
-    {
-        this.object = object;
-    }
-    
-    public T get()
-    {
-        return this.object;
-    }
-    
-    public void set( final T object )
-    {
-        this.object = object;
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/PluginUtil.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/PluginUtil.java
deleted file mode 100644
index 41e86fe..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/PluginUtil.java
+++ /dev/null
@@ -1,286 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.util.internal;
-
-import static org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin.createErrorStatus;
-import static org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin.log;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin;
-import org.osgi.framework.Bundle;
-
-/**
- * Utility methods that are helpful for implementing extension points.
- *
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class PluginUtil
-{
-    public static final class InvalidExtensionException
-
-        extends Exception
-    
-    {
-        private static final long serialVersionUID = 1L;
-    }
-    
-	private PluginUtil() {}
-    
-    public static Collection<IExtension> findExtensions( final String pluginId,
-                                                         final String extensionPointId )
-    {
-        final IExtensionRegistry registry = Platform.getExtensionRegistry();
-        final IExtensionPoint point = registry.getExtensionPoint( pluginId, extensionPointId );
-        
-        if( point == null )
-        {
-            throw new RuntimeException();
-        }
-        
-        final List<IExtension> extensions = new ArrayList<IExtension>();
-        
-        for( IExtension extension : point.getExtensions() )
-        {
-            extensions.add( extension );
-        }
-        
-        return extensions;
-    }
-    
-    public static Collection<IConfigurationElement> getTopLevelElements( final Collection<IExtension> extensions )
-    {
-        final List<IConfigurationElement> elements = new ArrayList<IConfigurationElement>();
-        
-        for( IExtension extension : extensions )
-        {
-            for( IConfigurationElement element : extension.getConfigurationElements() )
-            {
-                elements.add( element );
-            }
-        }
-        
-        return elements;
-    }
-
-    public static void reportMissingAttribute( final IConfigurationElement el,
-                                               final String attribute )
-    {
-        final String pluginId = el.getContributor().getName();
-        final String extPointId = el.getDeclaringExtension().getExtensionPointUniqueIdentifier();
-        
-        final String msg
-            = Resources.bind( Resources.missingAttribute, pluginId, extPointId, el.getName(), 
-                              attribute );
-
-        FacetCorePlugin.log( msg );
-    }
-
-    public static void reportMissingElement( final IConfigurationElement el,
-                                             final String element )
-    {
-        final String pluginId = el.getContributor().getName();
-        final String extPointId = el.getDeclaringExtension().getExtensionPointUniqueIdentifier();
-        
-        final String msg
-            = Resources.bind( Resources.missingElement, pluginId, extPointId, el.getName(), 
-                              element );
-
-        FacetCorePlugin.log( msg );
-    }
-
-    public static String findRequiredAttribute( final IConfigurationElement el,
-                                                final String attribute )
-
-        throws InvalidExtensionException
-
-    {
-        final String val = el.getAttribute( attribute );
-
-        if( val == null )
-        {
-            reportMissingAttribute( el, attribute );
-            throw new InvalidExtensionException();
-        }
-
-        return val;
-    }
-
-    public static IConfigurationElement findRequiredElement( final IConfigurationElement el,
-                                                             final String childElement )
-
-        throws InvalidExtensionException
-
-    {
-        final IConfigurationElement[] children = el.getChildren( childElement );
-
-        if( children.length == 0 )
-        {
-            reportMissingElement( el, childElement );
-            throw new InvalidExtensionException();
-        }
-
-        return children[ 0 ];
-    }
-
-    public static IConfigurationElement findOptionalElement( final IConfigurationElement el,
-                                                             final String childElement )
-    {
-        final IConfigurationElement[] children = el.getChildren( childElement );
-
-        if( children.length == 0 )
-        {
-            return null;
-        }
-        else
-        {
-            return children[ 0 ];
-        }
-    }
-    
-    public static String getElementValue( final IConfigurationElement el,
-                                          final String defaultValue )
-    {
-        if( el != null )
-        {
-            String text = el.getValue();
-            
-            if( text != null )
-            {
-                text = text.trim();
-                
-                if( text.length() > 0 )
-                {
-                    return text;
-                }
-            }
-        }
-        
-        return defaultValue;
-    }
-    
-    public static <T> Class<T> loadClass( final String pluginId,
-                                          final String clname )
-    {
-        return loadClass( pluginId, clname, null );
-    }
-
-    @SuppressWarnings( "unchecked" )
-    public static <T> Class<T> loadClass( final String pluginId,
-                                          final String clname,
-                                          final Class<T> interfc )
-    {
-        final Bundle bundle = Platform.getBundle( pluginId );
-        final Class cl;
-
-        try
-        {
-            cl = bundle.loadClass( clname );
-        }
-        catch( Exception e )
-        {
-            final String msg
-                = Resources.bind( Resources.failedToLoadClass, clname, pluginId );
-
-            log( createErrorStatus( msg, e ) );
-
-            return null;
-        }
-
-        if( interfc != null && ! interfc.isAssignableFrom( cl ) )
-        {
-            final String msg
-                = Resources.bind( Resources.doesNotImplement, clname,
-                                  interfc.getClass().getName() );
-
-            log( createErrorStatus( msg ) );
-
-            return null;
-        }
-
-        return cl;
-    }
-
-    public static <T> T instantiate( final String pluginId,
-                                     final Class<T> cl )
-    {
-        try
-        {
-            return cl.newInstance();
-        }
-        catch( Exception e )
-        {
-            final String msg
-                = NLS.bind( Resources.failedToInstantiate, cl.getName(), pluginId );
-
-            log( createErrorStatus( msg, e ) );
-
-            return null;
-        }
-    }
-
-    public static <T> T instantiate( final String pluginId,
-                                     final String clname )
-    {
-        return instantiate( pluginId, clname, (Class<T>) null );
-    }
-
-    public static <T> T instantiate( final String pluginId,
-                                     final String clname,
-                                     final Class<T> interfc )
-    {
-        final Class<T> cl = loadClass( pluginId, clname, interfc );
-
-        if( cl == null )
-        {
-            return null;
-        }
-
-        return instantiate( pluginId, cl );
-    }
-    
-    private static final class Resources
-
-        extends NLS
-    
-    {
-        public static String missingAttribute;
-        public static String missingElement;
-        public static String failedToLoadClass;
-        public static String failedToInstantiate;
-        public static String doesNotImplement;
-    
-        static
-        {
-            initializeMessages( PluginUtil.class.getName(), Resources.class );
-        }
-        
-        public static String bind( final String message,
-                                   final String arg1,
-                                   final String arg2,
-                                   final String arg3,
-                                   final String arg4 )
-        {
-            return bind( message, new Object[] { arg1, arg2, arg3, arg4 } );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/PluginUtil.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/PluginUtil.properties
deleted file mode 100644
index c4fa860..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/PluginUtil.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-missingAttribute = Extension element <{2}> is missing required attribute "{3}". [plugin: "{0}"; extension point: "{1}"]
-missingElement = Extension element <{2}> is missing required child element <{3}>. [plugin: "{0}"; extension point: "{1}"]
-failedToLoadClass = Failed to load class "{0}" from plugin "{1}".
-failedToInstantiate = Failed to instantiate class "{0}" from plugin "{1}".
-doesNotImplement = Class "{0}" does not implement "{1}" interface.
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/ProgressMonitorUtil.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/ProgressMonitorUtil.java
deleted file mode 100644
index 37e2be5..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/ProgressMonitorUtil.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.util.internal;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.SubProgressMonitor;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class ProgressMonitorUtil 
-{
-    private ProgressMonitorUtil() {}
-    
-    public static void beginTask( final IProgressMonitor monitor,
-                                  final String taskName,
-                                  final int totalWork )
-    {
-        if( monitor != null )
-        {
-            monitor.beginTask( taskName, totalWork );
-        }
-    }
-    
-    public static void worked( final IProgressMonitor monitor,
-                               final int work )
-    {
-        if( monitor != null )
-        {
-            monitor.worked( work );
-        }
-    }
-    
-    public static void done( final IProgressMonitor monitor )
-    {
-        if( monitor != null )
-        {
-            monitor.done();
-        }
-    }
-    
-    public static IProgressMonitor submon( final IProgressMonitor parent,
-                                           final int ticks )
-    {
-        return submon( parent, ticks, SubProgressMonitor.SUPPRESS_SUBTASK_LABEL );
-    }
-
-    public static IProgressMonitor submon( final IProgressMonitor parent,
-                                           final int ticks,
-                                           final int style )
-    {
-        return ( parent == null ? new NullProgressMonitor() : new SubProgressMonitor( parent, ticks, style ) );
-    }
-    
-    public static void subTask( final IProgressMonitor monitor,
-                                final String taskName )
-    {
-        if( monitor != null )
-        {
-            monitor.subTask( taskName );
-        }
-    }
-    
-    public static void checkIfCanceled( final IProgressMonitor monitor )
-    
-        throws InterruptedException
-        
-    {
-        if( monitor != null && monitor.isCanceled() )
-        {
-            throw new InterruptedException();
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/StatusWrapper.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/StatusWrapper.java
deleted file mode 100644
index 16e52fe..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/StatusWrapper.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.util.internal;
-
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * Helper class that can be used to wrap an existing status object and override
- * the status code.
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class StatusWrapper
-
-    implements IStatus
-    
-{
-    private final IStatus base;
-    private Integer code = null;
-    private String message = null;
-    
-    public StatusWrapper( final IStatus status )
-    {
-        this.base = status;
-    }
-    
-    public IStatus[] getChildren()
-    {
-        return this.base.getChildren();
-    }
-
-    public int getCode()
-    {
-        if( this.code != null )
-        {
-            return this.code;
-        }
-        else
-        {
-            return this.base.getCode();
-        }
-    }
-    
-    public void setCode( final int code )
-    {
-        this.code = code;
-    }
-
-    public Throwable getException()
-    {
-        return this.base.getException();
-    }
-
-    public String getMessage()
-    {
-        if( this.message != null )
-        {
-            return this.message;
-        }
-        else
-        {
-            return this.base.getMessage();
-        }
-    }
-    
-    public void setMessage( final String message )
-    {
-        this.message = message;
-    }
-
-    public String getPlugin()
-    {
-        return this.base.getPlugin();
-    }
-
-    public int getSeverity()
-    {
-        return this.base.getSeverity();
-    }
-
-    public boolean isMultiStatus()
-    {
-        return this.base.isMultiStatus();
-    }
-
-    public boolean isOK()
-    {
-        return this.base.isOK();
-    }
-
-    public boolean matches( final int severityMask )
-    {
-        return this.base.matches( severityMask );
-    }
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/UnknownVersion.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/UnknownVersion.java
deleted file mode 100644
index 6119e35..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/UnknownVersion.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.util.internal;
-
-import java.util.Comparator;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.common.project.facet.core.IVersion;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class UnknownVersion<T extends IVersion>
-
-    implements IVersion
-    
-{
-    private final Versionable<T> versionable;
-    private final String versionString;
-    
-    public UnknownVersion( final Versionable<T> versionable,
-                           final String versionString )
-    {
-        this.versionable = versionable;
-        this.versionString = versionString;
-    }
-    
-    public String getVersionString()
-    {
-        return this.versionString;
-    }
-
-    public int compareTo( final Object obj )
-    {
-        try
-        {
-            final Comparator<String> comp = this.versionable.getVersionComparator();
-            return comp.compare( this.versionString, ( (IVersion) obj  ).getVersionString() );
-        }
-        catch( CoreException e )
-        {
-            throw new RuntimeException( e );
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/VersionExpr.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/VersionExpr.java
deleted file mode 100644
index ce10cab..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/VersionExpr.java
+++ /dev/null
@@ -1,669 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.util.internal;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.IVersion;
-import org.eclipse.wst.common.project.facet.core.IVersionExpr;
-import org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class VersionExpr<T extends IVersion>
-
-    implements IVersionExpr
-    
-{
-    private static final int SM1_START = 0;
-    private static final int SM1_PARSING_START_VERSION = 1;
-    private static final int SM1_PARSING_END_VERSION = 2;
-    private static final int SM1_FINISHED_RANGE_INCLUSIVE = 3;
-    private static final int SM1_FINISHED_RANGE_EXCLUSIVE = 4;
-    private static final int SM1_PARSING_WILDCARD = 5;
-    
-    private static final int SM2_VERSION_START = 0;
-    private static final int SM2_VERSION_CONTINUING = 1;
-    private static final int SM2_ESCAPE = 2;
-    
-    private final Versionable<T> versionable;
-    private final List<ISubExpr> subexprs;
-    private final String usedInPlugin;
-    
-    @SuppressWarnings( "unchecked" )
-    public VersionExpr( final Object versionable,
-                        final String expr,
-                        final String usedInPlugin )
-    
-        throws CoreException
-        
-    {
-        this( (Versionable<T>) versionable, expr, usedInPlugin );
-    }
-    
-    public VersionExpr( final Versionable<T> versionable,
-                        final String expr,
-                        final String usedInPlugin )
-    
-        throws CoreException
-        
-    {
-        this.versionable = versionable;
-        this.subexprs = new ArrayList<ISubExpr>();
-        this.usedInPlugin = usedInPlugin;
-        
-        int state = SM1_START;
-        Range range = null;
-        boolean usingDeprecatedSyntax = false;
-        
-        for( MutableInteger position = new MutableInteger(); 
-             position.value < expr.length(); position.value++ )
-        {
-            final char ch = expr.charAt( position.value );
-            
-            switch( state )
-            {
-                case SM1_START:
-                {
-                    if( ch == '[' )
-                    {
-                        range = new Range();
-                        range.includesStartVersion = true;
-                        state = SM1_PARSING_START_VERSION;
-                    }
-                    else if( ch == '(' )
-                    {
-                        range = new Range();
-                        range.includesStartVersion = false;
-                        state = SM1_PARSING_START_VERSION;
-                    }
-                    else if( ch == '*' )
-                    {
-                        this.subexprs.add( new Wildcard() );
-                        state = SM1_PARSING_WILDCARD;
-                    }
-                    else if( ch == ' ' || ch == ',' )
-                    {
-                        // ignore
-                    }
-                    else
-                    {
-                        final StringBuffer buf = new StringBuffer();
-                        final int exitState = parseVersion( expr, position, buf );
-                        
-                        if( exitState == SM1_START )
-                        {
-                            final String vstr = buf.toString();
-                            final Range r = new Range();
-                            
-                            if( vstr.startsWith( ">=" ) ) //$NON-NLS-1$
-                            {
-                                r.startVersion = parseVersion( vstr.substring( 2 ) );
-                                r.includesStartVersion = true;
-                                usingDeprecatedSyntax = true;
-                            }
-                            else if( vstr.startsWith( ">" ) ) //$NON-NLS-1$
-                            {
-                                r.startVersion = parseVersion( vstr.substring( 1 ) );
-                                r.includesStartVersion = false;
-                                usingDeprecatedSyntax = true;
-                            }
-                            else if( vstr.startsWith( "<=" ) ) //$NON-NLS-1$
-                            {
-                                r.endVersion = parseVersion( vstr.substring( 2 ) );
-                                r.includesEndVersion = true;
-                                usingDeprecatedSyntax = true;
-                            }
-                            else if( vstr.startsWith( "<" ) ) //$NON-NLS-1$
-                            {
-                                r.endVersion = parseVersion( vstr.substring( 1 ) );
-                                r.includesEndVersion = false;
-                                usingDeprecatedSyntax = true;
-                            }
-                            else
-                            {
-                                r.startVersion = parseVersion( vstr );
-                                r.includesStartVersion = true;
-                                r.endVersion = r.startVersion;
-                                r.includesEndVersion = true;
-                            }
-                            
-                            this.subexprs.add( r );
-                        }
-                        else if( exitState == SM1_FINISHED_RANGE_INCLUSIVE ||
-                                 exitState == SM1_FINISHED_RANGE_EXCLUSIVE )
-                        {
-                            range = new Range();
-                            range.endVersion = parseVersion( buf.toString() );
-                            state = exitState;
-                            position.value--;
-                        }
-                        else
-                        {
-                            throw createInvalidVersionExprException( expr );
-                        }
-                    }
-                    
-                    break;
-                }
-                case SM1_PARSING_START_VERSION:
-                {
-                    final StringBuffer buf = new StringBuffer();
-                    final int exitState = parseVersion( expr, position, buf );
-
-                    if( exitState == SM1_START )
-                    {
-                        range.startVersion = parseVersion( buf.toString() );
-                        this.subexprs.add( range );
-                        range = null;
-                        state = exitState;
-                    }
-                    else if( exitState == SM1_PARSING_END_VERSION )
-                    {
-                        range.startVersion = parseVersion( buf.toString() );
-                        state = exitState;
-                    }
-                    else
-                    {
-                        throw createInvalidVersionExprException( expr );
-                    }
-                    
-                    break;
-                }
-                case SM1_PARSING_END_VERSION:
-                {
-                    final StringBuffer buf = new StringBuffer();
-                    final int exitState = parseVersion( expr, position, buf );
-                    
-                    if( exitState == SM1_FINISHED_RANGE_INCLUSIVE ||
-                        exitState == SM1_FINISHED_RANGE_EXCLUSIVE )
-                    {
-                        range.endVersion = parseVersion( buf.toString() );
-                        state = exitState;
-                        position.value--;
-                    }
-                    else
-                    {
-                        throw createInvalidVersionExprException( expr );
-                    }
-                    
-                    break;
-                }
-                case SM1_FINISHED_RANGE_INCLUSIVE:
-                case SM1_FINISHED_RANGE_EXCLUSIVE:
-                {
-                    range.includesEndVersion 
-                        = ( state == SM1_FINISHED_RANGE_INCLUSIVE );
-                    
-                    this.subexprs.add( range );
-                    range = null;
-                    
-                    state = SM1_START;
-                    
-                    break;
-                }
-                case SM1_PARSING_WILDCARD:
-                {
-                    if( ch == ' ' )
-                    {
-                        // ignore
-                    }
-                    else if( ch == ',' )
-                    {
-                        state = SM1_START;
-                    }
-                    else
-                    {
-                        throw createInvalidVersionExprException( expr );
-                    }
-                }
-                default:
-                {
-                    throw new IllegalStateException();
-                }
-            }
-        }
-        
-        // Report the use of deprecated syntax.
-        
-        if( usingDeprecatedSyntax )
-        {
-            final String msg;
-            
-            if( this.usedInPlugin == null )
-            {
-                msg = Resources.deprecatedSyntaxNoPlugin;
-            }
-            else
-            {
-                msg = NLS.bind( Resources.deprecatedSyntax, this.usedInPlugin );
-            }
-            
-            FacetCorePlugin.logWarning( msg, true );
-        }
-    }
-    
-    private int parseVersion( final String str,
-                              final MutableInteger position,
-                              final StringBuffer version )
-    
-        throws CoreException
-        
-    {
-        int localState = SM2_VERSION_START;
-        int exitState = -1;
-        
-        for( ; exitState == -1 && position.value < str.length(); 
-             position.value++ )
-        {
-            final char ch = str.charAt( position.value );
-            
-            switch( localState )
-            {
-                case SM2_VERSION_START:
-                {
-                    if( ch == '[' || ch == '(' || ch == ']' || ch == ')' ||
-                        ch == '-' || ch == ',' )
-                    {
-                        throw createInvalidVersionExprException( str );
-                    }
-                    else if( ch == '\\' )
-                    {
-                        localState = SM2_ESCAPE;
-                    }
-                    else if( ch == ' ' )
-                    {
-                        // ignore
-                    }
-                    else
-                    {
-                        version.append( ch );
-                        localState = SM2_VERSION_CONTINUING;
-                    }
-                    
-                    break;
-                }
-                case SM2_VERSION_CONTINUING:
-                {
-                    if( ch == '[' || ch == '(' )
-                    {
-                        throw createInvalidVersionExprException( str );
-                    }
-                    else if( ch == '\\' )
-                    {
-                        localState = SM2_ESCAPE;
-                    }
-                    else if( ch == ',' )
-                    {
-                        exitState = SM1_START;
-                    }
-                    else if( ch == '-' )
-                    {
-                        exitState = SM1_PARSING_END_VERSION;
-                    }
-                    else if( ch == ']' )
-                    {
-                        exitState = SM1_FINISHED_RANGE_INCLUSIVE;
-                    }
-                    else if( ch == ')' )
-                    {
-                        exitState = SM1_FINISHED_RANGE_EXCLUSIVE;
-                    }
-                    else if( ch == ' ' )
-                    {
-                        // ignore
-                    }
-                    else
-                    {
-                        version.append( ch );
-                    }
-                    
-                    break;
-                }
-                case SM2_ESCAPE:
-                {
-                    version.append( ch );
-                    break;
-                }
-                default:
-                {
-                    throw new IllegalStateException();
-                }
-            }
-        }
-        
-        position.value--;
-        
-        if( exitState != -1 )
-        {
-            return exitState;
-        }
-        else
-        {
-            if( localState == SM2_VERSION_CONTINUING )
-            {
-                // Expected end of input.
-                
-                return SM1_START;
-            }
-            else
-            {
-                // Unexpected end of input.
-                
-                throw createInvalidVersionExprException( str );
-            }
-        }
-    }
-    
-    private IVersion parseVersion( final String str )
-    {
-        if( this.versionable.hasVersion( str ) )
-        {
-            return this.versionable.getVersion( str );
-        }
-        else
-        {
-            return new UnknownVersion<T>( this.versionable, str );
-        }
-    }
-    
-    public boolean check( final IVersion ver )
-    {
-        for( ISubExpr subexpr : this.subexprs )
-        {
-            if( subexpr.evaluate( ver ) )
-            {
-                return true;
-            }
-        }
-        
-        return false;
-    }
-    
-    public boolean evaluate( final String ver )
-    {
-        return check( parseVersion( ver ) );
-    }
-    
-    public boolean isSingleVersionMatch()
-    {
-        if( this.subexprs.size() == 1 )
-        {
-            final ISubExpr subExpr = this.subexprs.get( 0 );
-            
-            if( subExpr instanceof Range )
-            {
-                final Range range = (Range) subExpr;
-                
-                if( range.startVersion.equals( range.endVersion ) &&
-                    range.includesStartVersion == range.includesEndVersion == true )
-                {
-                    return true;
-                }
-            }
-        }
-        
-        return false;
-    }
-
-    public boolean isSimpleAllowNewer()
-    {
-        if( this.subexprs.size() == 1 )
-        {
-            final ISubExpr subExpr = this.subexprs.get( 0 );
-            
-            if( subExpr instanceof Range )
-            {
-                final Range range = (Range) subExpr;
-            
-                if( range.startVersion != null && range.endVersion == null &&
-                    range.includesStartVersion  )
-                {
-                    return true;
-                }
-            }
-        }
-        
-        return false;
-    }
-    
-    public boolean isWildcard()
-    {
-        return this.subexprs.size() == 1 && 
-               this.subexprs.get( 0 ) instanceof Wildcard;
-    }
-    
-    public String getFirstVersion()
-    {
-        if( isSingleVersionMatch() || isSimpleAllowNewer() )
-        {
-            final Range range = (Range) this.subexprs.get( 0 );
-            return range.startVersion.getVersionString();
-        }
-        else
-        {
-            throw new IllegalStateException();
-        }
-    }
-    
-    public String toString()
-    {
-        final StringBuffer buf = new StringBuffer();
-        
-        for( ISubExpr subexpr : this.subexprs )
-        {
-            if( buf.length() > 0 ) buf.append( ',' );
-            buf.append( subexpr.toString() );
-        }
-        
-        return buf.toString();
-    }
-    
-    public String toDisplayString()
-    {
-        if( this.subexprs.size() == 1 )
-        {
-            final ISubExpr subexpr = this.subexprs.get( 0 );
-            
-            if( subexpr instanceof Range )
-            {
-                final Range r = (Range) subexpr;
-                
-                if( r.isSingleVersion() )
-                {
-                    return r.startVersion.getVersionString();
-                }
-                else if( r.endVersion == null && r.includesStartVersion )
-                {
-                    return NLS.bind( Resources.versionOrNewer, 
-                                     r.startVersion.getVersionString() );
-                }
-            }
-        }
-
-        boolean onlySingleVersions = true;
-        
-        for( ISubExpr subexpr : this.subexprs )
-        {
-            if( ! ( subexpr instanceof Range ) || 
-                ! ( (Range) subexpr ).isSingleVersion() )
-            {
-                onlySingleVersions = false;
-                break;
-            }
-        }
-        
-        if( onlySingleVersions )
-        {
-            final StringBuffer buf = new StringBuffer();
-
-            for( Iterator<ISubExpr> itr = this.subexprs.iterator(); itr.hasNext(); )
-            {
-                final Range r = (Range) itr.next();
-                
-                if( buf.length() > 0 )
-                {
-                    if( itr.hasNext() )
-                    {
-                        buf.append( ", " ); //$NON-NLS-1$
-                    }
-                    else
-                    {
-                        buf.append( " or " ); //$NON-NLS-1$
-                    }
-                }
-                
-                buf.append( r.startVersion.getVersionString() );
-            }
-            
-            return buf.toString();
-        }
-        
-        return toString();
-    }
-    
-    private static CoreException createInvalidVersionExprException( final String str )
-    {
-        final String msg
-            = NLS.bind( Resources.invalidVersionExpr, str );
-    
-        final IStatus st = FacetCorePlugin.createErrorStatus( msg );
-    
-        return new CoreException( st );
-    }
-    
-    private static interface ISubExpr
-    {
-        boolean evaluate( IVersion version );
-    }
-    
-    private static final class Range
-    
-        implements ISubExpr
-        
-    {
-        public IVersion startVersion = null;
-        public boolean includesStartVersion = false;
-        public IVersion endVersion = null;
-        public boolean includesEndVersion = false;
-        
-        public boolean isSingleVersion()
-        {
-            return this.startVersion.equals( this.endVersion ) &&
-                   this.includesStartVersion == this.includesEndVersion == true;
-        }
-        
-        @SuppressWarnings( "unchecked" )
-        public boolean evaluate( final IVersion version )
-        {
-            if( this.startVersion != null )
-            {
-                final int res = version.compareTo( this.startVersion );
-                
-                if( ! ( res > 0 || ( res == 0 && this.includesStartVersion ) ) )
-                {
-                    return false;
-                }
-            }
-            
-            if( this.endVersion != null )
-            {
-                final int res = version.compareTo( this.endVersion );
-                
-                if( ! ( res < 0 || ( res == 0 && this.includesEndVersion ) ) )
-                {
-                    return false;
-                }
-            }
-            
-            return true;
-        }
-        
-        public String toString()
-        {
-            if( this.startVersion.equals( this.endVersion ) &&
-                this.includesStartVersion == this.includesEndVersion == true )
-            {
-                return this.startVersion.getVersionString();
-            }
-            else
-            {
-                final StringBuffer buf = new StringBuffer();
-                
-                if( this.startVersion != null )
-                {
-                    buf.append( this.includesStartVersion ? '[' : '(' );
-                    buf.append( this.startVersion.getVersionString() );
-                }
-                
-                if( this.endVersion != null )
-                {
-                    if( buf.length() != 0 )
-                    {
-                        buf.append( '-' );
-                    }
-                    
-                    buf.append( this.endVersion.getVersionString() );
-                    buf.append( this.includesEndVersion ? ']' : ')' );
-                }
-                
-                return buf.toString();
-            }
-        }
-    }
-    
-    private static final class Wildcard
-    
-        implements ISubExpr
-        
-    {
-        public boolean evaluate( final IVersion version )
-        {
-            return true;
-        }
-        
-        public String toString()
-        {
-            return IVersionExpr.WILDCARD_SYMBOL;
-        }
-    }
-    
-    private static final class MutableInteger
-    {
-        public int value = 0;
-    }
-    
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String invalidVersionExpr;
-        public static String deprecatedSyntax;
-        public static String deprecatedSyntaxNoPlugin;
-        public static String versionOrNewer;
-        
-        static
-        {
-            initializeMessages( VersionExpr.class.getName(), 
-                                Resources.class );
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/VersionExpr.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/VersionExpr.properties
deleted file mode 100644
index 978d2fb..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/VersionExpr.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-invalidVersionExpr = Version expression "{0}" is invalid.
-
-deprecatedSyntax = \
-The ">", ">=", "<", and "<=" notation in version expressions has been \
-deprecated. It used in plugin {0}. Note that the angle brackets are \
-represented via "&lt;" and "&gt;" in the plugin.xml files. The functionality \
-has been replaced with range notation. For instance "[X-Y)" means all \
-versions greater or equals to X and less than Y. Open ranges such as "(X" or \
-"Y]" are also allowed.
-
-deprecatedSyntaxNoPlugin = \
-The ">", ">=", "<", and "<=" notation in version expressions has been \
-deprecated. Note that the angle brackets are \
-represented via "&lt;" and "&gt;" in the plugin.xml files. The functionality \
-has been replaced with range notation. For instance "[X-Y)" means all \
-versions greater or equals to X and less than Y. Open ranges such as "(X" or \
-"Y]" are also allowed.
-
-versionOrNewer = {0} or newer
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/VersionExpr2.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/VersionExpr2.java
deleted file mode 100644
index c31b1f3..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/VersionExpr2.java
+++ /dev/null
@@ -1,625 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.util.internal;
-
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.DefaultVersionComparator;
-import org.eclipse.wst.common.project.facet.core.IVersionExpr;
-import org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class VersionExpr2
-{
-    private static final int SM1_START = 0;
-    private static final int SM1_PARSING_START_VERSION = 1;
-    private static final int SM1_PARSING_END_VERSION = 2;
-    private static final int SM1_FINISHED_RANGE_INCLUSIVE = 3;
-    private static final int SM1_FINISHED_RANGE_EXCLUSIVE = 4;
-    private static final int SM1_PARSING_WILDCARD = 5;
-    
-    private static final int SM2_VERSION_START = 0;
-    private static final int SM2_VERSION_CONTINUING = 1;
-    private static final int SM2_ESCAPE = 2;
-
-    private final List<ISubExpr> subexprs;
-    private final Comparator<String> comparator;
-    
-    public VersionExpr2( final String expr )
-    
-        throws CoreException
-        
-    {
-        this( expr, null );
-    }
-    
-    public VersionExpr2( final String expr,
-                         final Comparator<String> comparator )
-    
-        throws CoreException
-        
-    {
-        this.subexprs = new ArrayList<ISubExpr>();
-        this.comparator = ( comparator != null ? comparator : new DefaultVersionComparator() );
-        
-        int state = SM1_START;
-        Range range = null;
-        
-        for( MutableInteger position = new MutableInteger(); 
-             position.value < expr.length(); position.value++ )
-        {
-            final char ch = expr.charAt( position.value );
-            
-            switch( state )
-            {
-                case SM1_START:
-                {
-                    if( ch == '[' )
-                    {
-                        range = new Range();
-                        range.includesStartVersion = true;
-                        state = SM1_PARSING_START_VERSION;
-                    }
-                    else if( ch == '(' )
-                    {
-                        range = new Range();
-                        range.includesStartVersion = false;
-                        state = SM1_PARSING_START_VERSION;
-                    }
-                    else if( ch == '*' )
-                    {
-                        this.subexprs.add( new Wildcard() );
-                        state = SM1_PARSING_WILDCARD;
-                    }
-                    else if( ch == ' ' || ch == ',' )
-                    {
-                        // ignore
-                    }
-                    else
-                    {
-                        final StringBuffer buf = new StringBuffer();
-                        final int exitState = parseVersion( expr, position, buf );
-                        
-                        if( exitState == SM1_START )
-                        {
-                            final String vstr = buf.toString();
-                            final Range r = new Range();
-                            
-                            r.startVersion = parseVersion( vstr );
-                            r.includesStartVersion = true;
-                            r.endVersion = r.startVersion;
-                            r.includesEndVersion = true;
-                            
-                            this.subexprs.add( r );
-                        }
-                        else if( exitState == SM1_FINISHED_RANGE_INCLUSIVE ||
-                                 exitState == SM1_FINISHED_RANGE_EXCLUSIVE )
-                        {
-                            range = new Range();
-                            range.endVersion = parseVersion( buf.toString() );
-                            state = exitState;
-                            position.value--;
-                        }
-                        else
-                        {
-                            throw createInvalidVersionExprException( expr );
-                        }
-                    }
-                    
-                    break;
-                }
-                case SM1_PARSING_START_VERSION:
-                {
-                    final StringBuffer buf = new StringBuffer();
-                    final int exitState = parseVersion( expr, position, buf );
-
-                    if( exitState == SM1_START )
-                    {
-                        range.startVersion = parseVersion( buf.toString() );
-                        this.subexprs.add( range );
-                        range = null;
-                        state = exitState;
-                    }
-                    else if( exitState == SM1_PARSING_END_VERSION )
-                    {
-                        range.startVersion = parseVersion( buf.toString() );
-                        state = exitState;
-                    }
-                    else
-                    {
-                        throw createInvalidVersionExprException( expr );
-                    }
-                    
-                    break;
-                }
-                case SM1_PARSING_END_VERSION:
-                {
-                    final StringBuffer buf = new StringBuffer();
-                    final int exitState = parseVersion( expr, position, buf );
-                    
-                    if( exitState == SM1_FINISHED_RANGE_INCLUSIVE ||
-                        exitState == SM1_FINISHED_RANGE_EXCLUSIVE )
-                    {
-                        range.endVersion = parseVersion( buf.toString() );
-                        state = exitState;
-                        position.value--;
-                    }
-                    else
-                    {
-                        throw createInvalidVersionExprException( expr );
-                    }
-                    
-                    break;
-                }
-                case SM1_FINISHED_RANGE_INCLUSIVE:
-                case SM1_FINISHED_RANGE_EXCLUSIVE:
-                {
-                    range.includesEndVersion 
-                        = ( state == SM1_FINISHED_RANGE_INCLUSIVE );
-                    
-                    this.subexprs.add( range );
-                    range = null;
-                    
-                    state = SM1_START;
-                    
-                    break;
-                }
-                case SM1_PARSING_WILDCARD:
-                {
-                    if( ch == ' ' )
-                    {
-                        // ignore
-                    }
-                    else if( ch == ',' )
-                    {
-                        state = SM1_START;
-                    }
-                    else
-                    {
-                        throw createInvalidVersionExprException( expr );
-                    }
-                }
-                default:
-                {
-                    throw new IllegalStateException();
-                }
-            }
-        }
-    }
-    
-    private int parseVersion( final String str,
-                              final MutableInteger position,
-                              final StringBuffer version )
-    
-        throws CoreException
-        
-    {
-        int localState = SM2_VERSION_START;
-        int exitState = -1;
-        
-        for( ; exitState == -1 && position.value < str.length(); 
-             position.value++ )
-        {
-            final char ch = str.charAt( position.value );
-            
-            switch( localState )
-            {
-                case SM2_VERSION_START:
-                {
-                    if( ch == '[' || ch == '(' || ch == ']' || ch == ')' ||
-                        ch == '-' || ch == ',' )
-                    {
-                        throw createInvalidVersionExprException( str );
-                    }
-                    else if( ch == '\\' )
-                    {
-                        localState = SM2_ESCAPE;
-                    }
-                    else if( ch == ' ' )
-                    {
-                        // ignore
-                    }
-                    else
-                    {
-                        version.append( ch );
-                        localState = SM2_VERSION_CONTINUING;
-                    }
-                    
-                    break;
-                }
-                case SM2_VERSION_CONTINUING:
-                {
-                    if( ch == '[' || ch == '(' )
-                    {
-                        throw createInvalidVersionExprException( str );
-                    }
-                    else if( ch == '\\' )
-                    {
-                        localState = SM2_ESCAPE;
-                    }
-                    else if( ch == ',' )
-                    {
-                        exitState = SM1_START;
-                    }
-                    else if( ch == '-' )
-                    {
-                        exitState = SM1_PARSING_END_VERSION;
-                    }
-                    else if( ch == ']' )
-                    {
-                        exitState = SM1_FINISHED_RANGE_INCLUSIVE;
-                    }
-                    else if( ch == ')' )
-                    {
-                        exitState = SM1_FINISHED_RANGE_EXCLUSIVE;
-                    }
-                    else if( ch == ' ' )
-                    {
-                        // ignore
-                    }
-                    else
-                    {
-                        version.append( ch );
-                    }
-                    
-                    break;
-                }
-                case SM2_ESCAPE:
-                {
-                    version.append( ch );
-                    break;
-                }
-                default:
-                {
-                    throw new IllegalStateException();
-                }
-            }
-        }
-        
-        position.value--;
-        
-        if( exitState != -1 )
-        {
-            return exitState;
-        }
-        else
-        {
-            if( localState == SM2_VERSION_CONTINUING )
-            {
-                // Expected end of input.
-                
-                return SM1_START;
-            }
-            else
-            {
-                // Unexpected end of input.
-                
-                throw createInvalidVersionExprException( str );
-            }
-        }
-    }
-    
-    private Version parseVersion( final String str )
-    {
-        return new Version( str, this.comparator );
-    }
-    
-    public boolean check( final String ver )
-    {
-        final Version version = parseVersion( ver );
-        
-        for( ISubExpr subexpr : this.subexprs )
-        {
-            if( subexpr.evaluate( version ) )
-            {
-                return true;
-            }
-        }
-        
-        return false;
-    }
-    
-    public boolean isSingleVersionMatch()
-    {
-        if( this.subexprs.size() == 1 )
-        {
-            final ISubExpr subExpr = this.subexprs.get( 0 );
-            
-            if( subExpr instanceof Range )
-            {
-                final Range range = (Range) subExpr;
-                
-                if( range.startVersion.equals( range.endVersion ) &&
-                    range.includesStartVersion == range.includesEndVersion == true )
-                {
-                    return true;
-                }
-            }
-        }
-        
-        return false;
-    }
-
-    public boolean isSimpleAllowNewer()
-    {
-        if( this.subexprs.size() == 1 )
-        {
-            final ISubExpr subExpr = this.subexprs.get( 0 );
-            
-            if( subExpr instanceof Range )
-            {
-                final Range range = (Range) subExpr;
-            
-                if( range.startVersion != null && range.endVersion == null &&
-                    range.includesStartVersion  )
-                {
-                    return true;
-                }
-            }
-        }
-        
-        return false;
-    }
-    
-    public boolean isWildcard()
-    {
-        return this.subexprs.size() == 1 && 
-               this.subexprs.get( 0 ) instanceof Wildcard;
-    }
-    
-    public String getFirstVersion()
-    {
-        if( isSingleVersionMatch() || isSimpleAllowNewer() )
-        {
-            final Range range = (Range) this.subexprs.get( 0 );
-            return range.startVersion.toString();
-        }
-        else
-        {
-            throw new IllegalStateException();
-        }
-    }
-    
-    public String toString()
-    {
-        final StringBuffer buf = new StringBuffer();
-        
-        for( ISubExpr subexpr : this.subexprs )
-        {
-            if( buf.length() > 0 ) buf.append( ',' );
-            buf.append( subexpr.toString() );
-        }
-        
-        return buf.toString();
-    }
-    
-    public String toDisplayString()
-    {
-        if( this.subexprs.size() == 1 )
-        {
-            final ISubExpr subexpr = this.subexprs.get( 0 );
-            
-            if( subexpr instanceof Range )
-            {
-                final Range r = (Range) subexpr;
-                
-                if( r.isSingleVersion() )
-                {
-                    return r.startVersion.toString();
-                }
-                else if( r.endVersion == null && r.includesStartVersion )
-                {
-                    return NLS.bind( Resources.versionOrNewer, 
-                                     r.startVersion.toString() );
-                }
-            }
-        }
-
-        boolean onlySingleVersions = true;
-        
-        for( ISubExpr subexpr : this.subexprs )
-        {
-            if( ! ( subexpr instanceof Range ) || 
-                ! ( (Range) subexpr ).isSingleVersion() )
-            {
-                onlySingleVersions = false;
-                break;
-            }
-        }
-        
-        if( onlySingleVersions )
-        {
-            final StringBuffer buf = new StringBuffer();
-
-            for( Iterator<ISubExpr> itr = this.subexprs.iterator(); itr.hasNext(); )
-            {
-                final Range r = (Range) itr.next();
-                
-                if( buf.length() > 0 )
-                {
-                    if( itr.hasNext() )
-                    {
-                        buf.append( ", " ); //$NON-NLS-1$
-                    }
-                    else
-                    {
-                        buf.append( " or " ); //$NON-NLS-1$
-                    }
-                }
-                
-                buf.append( r.startVersion.toString() );
-            }
-            
-            return buf.toString();
-        }
-        
-        return toString();
-    }
-    
-    private static CoreException createInvalidVersionExprException( final String str )
-    {
-        final String msg
-            = NLS.bind( Resources.invalidVersionExpr, str );
-    
-        final IStatus st = FacetCorePlugin.createErrorStatus( msg );
-    
-        return new CoreException( st );
-    }
-    
-    private static interface ISubExpr
-    {
-        boolean evaluate( Version version );
-    }
-    
-    private static final class Range
-    
-        implements ISubExpr
-        
-    {
-        public Version startVersion = null;
-        public boolean includesStartVersion = false;
-        public Version endVersion = null;
-        public boolean includesEndVersion = false;
-        
-        public boolean isSingleVersion()
-        {
-            return this.startVersion.equals( this.endVersion ) &&
-                   this.includesStartVersion == this.includesEndVersion == true;
-        }
-        
-        public boolean evaluate( final Version version )
-        {
-            if( this.startVersion != null )
-            {
-                final int res = version.compareTo( this.startVersion );
-                
-                if( ! ( res > 0 || ( res == 0 && this.includesStartVersion ) ) )
-                {
-                    return false;
-                }
-            }
-            
-            if( this.endVersion != null )
-            {
-                final int res = version.compareTo( this.endVersion );
-                
-                if( ! ( res < 0 || ( res == 0 && this.includesEndVersion ) ) )
-                {
-                    return false;
-                }
-            }
-            
-            return true;
-        }
-        
-        public String toString()
-        {
-            if( this.startVersion.equals( this.endVersion ) &&
-                this.includesStartVersion == this.includesEndVersion == true )
-            {
-                return this.startVersion.toString();
-            }
-            else
-            {
-                final StringBuffer buf = new StringBuffer();
-                
-                if( this.startVersion != null )
-                {
-                    buf.append( this.includesStartVersion ? '[' : '(' );
-                    buf.append( this.startVersion.toString() );
-                }
-                
-                if( this.endVersion != null )
-                {
-                    if( buf.length() != 0 )
-                    {
-                        buf.append( '-' );
-                    }
-                    
-                    buf.append( this.endVersion.toString() );
-                    buf.append( this.includesEndVersion ? ']' : ')' );
-                }
-                
-                return buf.toString();
-            }
-        }
-    }
-    
-    private static final class Wildcard
-    
-        implements ISubExpr
-        
-    {
-        public boolean evaluate( final Version version )
-        {
-            return true;
-        }
-        
-        public String toString()
-        {
-            return IVersionExpr.WILDCARD_SYMBOL;
-        }
-    }
-    
-    private static final class MutableInteger
-    {
-        public int value = 0;
-    }
-    
-    private final class Version
-    {
-        private final String versionString;
-        private final Comparator<String> comparator;
-        
-        public Version( final String versionString,
-                        final Comparator<String> comparator )
-        {
-            this.versionString = versionString;
-            this.comparator = comparator;
-        }
-        
-        public int compareTo( final Object obj )
-        {
-            return this.comparator.compare( this.versionString, ( (Version) obj  ).toString() );
-        }
-
-        public String toString()
-        {
-            return this.versionString;
-        }
-    }
-    
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String invalidVersionExpr;
-        public static String versionOrNewer;
-        
-        static
-        {
-            initializeMessages( VersionExpr2.class.getName(), 
-                                Resources.class );
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/VersionExpr2.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/VersionExpr2.properties
deleted file mode 100644
index e16639a..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/VersionExpr2.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-invalidVersionExpr = Version expression "{0}" is invalid.
-versionOrNewer = {0} or newer
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/Versionable.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/Versionable.java
deleted file mode 100644
index 66b910f..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/Versionable.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.util.internal;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.DefaultVersionComparator;
-import org.eclipse.wst.common.project.facet.core.IVersion;
-import org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin;
-import org.osgi.framework.Bundle;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public abstract class Versionable<T extends IVersion>
-{
-    private static final Comparator<String> DEFAULT_VERSION_COMPARATOR
-        = new DefaultVersionComparator();
-
-    protected final IndexedSet<String,T> versions;
-    private String versionComparatorClass;
-    private Comparator<String> versionComparator;
-    
-    public Versionable()
-    {
-        this.versions = new IndexedSet<String,T>();
-    }
-    
-    public abstract String getPluginId();
-    
-    public Set<T> getVersions()
-    {
-        return this.versions.getUnmodifiable();
-    }
-    
-    public Set<T> getVersions( final String expr )
-    
-        throws CoreException
-        
-    {
-        final VersionExpr<T> prepared = new VersionExpr<T>( this, expr, null );
-        final Set<T> result = new HashSet<T>();
-         
-        for( T ver : this.versions )
-        {
-            if( prepared.check( ver ) )
-            {
-                result.add( ver );
-            }
-        }
-        
-        return result;
-    }
-    
-    public T getVersion( final String version )
-    {
-        final T ver = this.versions.get( version );
-        
-        if( ver == null )
-        {
-            throw new IllegalArgumentException( createVersionNotFoundErrMsg( version ) );
-        }
-        
-        return ver;
-    }
-    
-    @SuppressWarnings( "unchecked" )
-    
-    public T getLatestVersion()
-    {
-        if( this.versions.size() > 0 )
-        {
-        	// [263113] Versionable no longer compiles as of I20090125-2000
-            return (T) Collections.max( this.versions );
-        }
-        else
-        {
-            return null;
-        }
-    }
-    
-    public boolean hasVersion( final String version )
-    {
-        return this.versions.containsKey( version );
-    }
-
-    public List<T> getSortedVersions( final boolean ascending )
-    {
-        Comparator<T> comp;
-        
-        if( ascending )
-        {
-            comp = null;
-        }
-        else
-        {
-            comp = new Comparator<T>()
-            {
-                @SuppressWarnings( "unchecked" )
-                public int compare( final T ver1,
-                                    final T ver2 )
-                {
-                    return ver1.compareTo( ver2 ) * -1;
-                }
-            };
-        }
-
-        final List<T> list = new ArrayList<T>( this.versions );
-        Collections.sort( list, comp );
-        
-        return list;
-    }
-    
-    @SuppressWarnings( "unchecked" )
-    public Comparator<String> getVersionComparator()
-    
-        throws CoreException
-        
-    {
-        Comparator<String> comp;
-        
-        if( this.versionComparatorClass == null )
-        {
-            comp = DEFAULT_VERSION_COMPARATOR;
-        }
-        else
-        {
-            if( this.versionComparator == null )
-            {
-                final Bundle bundle = Platform.getBundle( getPluginId() );
-                
-                try
-                {
-                    final Class cl 
-                        = bundle.loadClass( this.versionComparatorClass );
-                    
-                    this.versionComparator = (Comparator<String>) cl.newInstance();
-                }
-                catch( Exception e )
-                {
-                    final String msg
-                        = NLS.bind( Resources.failedToCreate, 
-                                    this.versionComparatorClass );
-                    
-                    final IStatus st 
-                        = FacetCorePlugin.createErrorStatus( msg, e );
-                    
-                    throw new CoreException( st );
-                }
-            }
-            
-            comp = this.versionComparator;
-        }
-        
-        return comp;
-    }
-    
-    public void setVersionComparator( final String clname )
-    {
-        this.versionComparatorClass = clname;
-    }
-    
-    public abstract String createVersionNotFoundErrMsg( String verstr );
-    
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String failedToCreate;
-        
-        static
-        {
-            initializeMessages( Versionable.class.getName(), 
-                                Resources.class );
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/Versionable.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/Versionable.properties
deleted file mode 100644
index 94219a0..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/Versionable.properties
+++ /dev/null
@@ -1 +0,0 @@
-failedToCreate = Failed to instantiate class {0}.
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/XmlParseException.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/XmlParseException.java
deleted file mode 100644
index 8aedd3f..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/XmlParseException.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.util.internal;
-
-/**
- * @author <a href="konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class XmlParseException
-
-    extends RuntimeException
-    
-{
-    private static final long serialVersionUID = 1L;
-
-    public XmlParseException( final Exception cause )
-    {
-        super( cause );
-    }
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/XmlUtil.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/XmlUtil.java
deleted file mode 100644
index 63cb3b5..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/XmlUtil.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.util.internal;
-
-/**
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public class XmlUtil
-{
-    private XmlUtil() {}
-    
-    public static String escape( final String string )
-    {
-        final StringBuilder buf = new StringBuilder();
-        
-        for( int i = 0, n = string.length(); i < n; i++ )
-        {
-            final char ch = string.charAt( i );
-            
-            if( ch == '<' )
-            {
-                buf.append( "&lt;" ); //$NON-NLS-1$
-            }
-            else if( ch == '>' )
-            {
-                buf.append( "&gt;" ); //$NON-NLS-1$
-            }
-            else if( ch == '&' )
-            {
-                buf.append( "&amp;" ); //$NON-NLS-1$
-            }
-            else
-            {
-                buf.append( ch );
-            }
-        }
-        
-        return buf.toString();
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/XmlWriter.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/XmlWriter.java
deleted file mode 100644
index b6cf4fb..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/XmlWriter.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:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.util.internal;
-
-import java.io.IOException;
-import java.io.Writer;
-import java.util.LinkedList;
-
-/**
- * Facility for writing XML files.
- * 
- * @author <a href="konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class XmlWriter
-{
-    public static final String ENCODING = "UTF-8"; //$NON-NLS-1$
-    
-    private static final String NL 
-        = System.getProperty( "line.separator" ); //$NON-NLS-1$
-    
-    private final Writer base;
-    private final String singleIndent;
-    private final LinkedList<Context> elementStack;
-    
-    private static final class Context
-    {
-        public String element;
-        public boolean hasChildren;
-        
-        public Context( final String element )
-        {
-            this.element = element;
-            this.hasChildren = false;
-        }
-    }
-    
-    public XmlWriter( final Writer base )
-    {
-        this( base, "  " ); //$NON-NLS-1$
-    }
-    
-    public XmlWriter( final Writer base,
-                      final String indent )
-    {
-        this.base = base;
-        this.singleIndent = indent;
-        this.elementStack = new LinkedList<Context>();
-    }
-    
-    public void startElement( final String name )
-    
-        throws IOException
-        
-    {
-        if( this.elementStack.size() > 0 )
-        {
-            final Context parentContext = this.elementStack.getLast();
-            
-            if( ! parentContext.hasChildren )
-            {
-                this.base.write( '>' );
-                this.base.write( NL );
-            }
-            
-            parentContext.hasChildren = true;
-        }
-        
-        indent();
-        
-        this.base.write( '<' );
-        this.base.write( name );
-        
-        this.elementStack.addLast( new Context( name ) );
-    }
-    
-    public void endElement()
-    
-        throws IOException
-        
-    {
-        if( this.elementStack.isEmpty() )
-        {
-            throw new RuntimeException();
-        }
-        
-        final Context context = this.elementStack.removeLast();
-        
-        if( context.hasChildren )
-        {
-            indent();
-            this.base.write( "</" ); //$NON-NLS-1$
-            this.base.write( context.element );
-            this.base.write( ">" ); //$NON-NLS-1$
-            this.base.write( NL );
-        }
-        else
-        {
-            this.base.write( "/>" ); //$NON-NLS-1$
-            this.base.write( NL );
-        }
-    }
-    
-    public void addAttribute( final String name,
-                              final String value )
-    
-        throws IOException
-        
-    {
-        if( this.elementStack.isEmpty() )
-        {
-            throw new RuntimeException();
-        }
-        
-        if( this.elementStack.getLast().hasChildren )
-        {
-            throw new RuntimeException();
-        }
-        
-        this.base.write( ' ' );
-        this.base.write( name );
-        this.base.write( "=\"" ); //$NON-NLS-1$
-        this.base.write( value );
-        this.base.write( '"' );
-    }
-    
-    public void flush()
-    
-        throws IOException
-        
-    {
-        this.base.flush();
-    }
-    
-    private void indent()
-    
-        throws IOException
-        
-    {
-        for( int i = 0, n = this.elementStack.size(); i < n; i++ )
-        {
-            this.base.write( this.singleIndent );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/ZipUtil.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/ZipUtil.java
deleted file mode 100644
index c3b5f41..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/ZipUtil.java
+++ /dev/null
@@ -1,318 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Oracle
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.util.internal;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Enumeration;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-import java.util.zip.ZipOutputStream;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Contains a series of static utility methods for working with zip archives.
- * 
- * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
- */
-
-public final class ZipUtil
-{
-    /**
-     * This class is a container for static methods and is not meant to be
-     * instantiated.
-     */
-    
-    private ZipUtil() {}
-
-    public static void zip( final File dir,
-                            final File target )
-    
-        throws IOException
-        
-    {
-        if( target.exists() )
-        {
-            delete( target );
-        }
-        
-        final ZipOutputStream zip 
-            = new ZipOutputStream( new FileOutputStream( target ) );
-        
-        try
-        {
-            zipDir( target, zip, dir, "" ); //$NON-NLS-1$
-        }
-        finally
-        {
-            try
-            {
-                zip.close();
-            }
-            catch( IOException e ) {}
-        }
-    }
-    
-    private static void zipDir( final File target,
-                                final ZipOutputStream zip,
-                                final File dir,
-                                final String path )
-    
-        throws IOException
-        
-       {
-        for( File f : dir.listFiles() )
-        {
-            final String cpath = path + f.getName();
-            
-            if( f.isDirectory() )
-            {
-                zipDir( target, zip, f, cpath + "/" ); //$NON-NLS-1$
-            }
-            else
-            {
-                zipFile( target, zip, f, cpath );
-            }
-        }
-       }
-    
-    private static void zipFile( final File target,
-                                 final ZipOutputStream zip,
-                                 final File file,
-                                 final String path )
-    
-        throws IOException
-        
-    {
-        if( ! file.equals( target ) )
-        {
-            final ZipEntry ze = new ZipEntry( path );
-            
-            ze.setTime( file.lastModified() + 1999 );
-            ze.setMethod( ZipEntry.DEFLATED );
-            
-            zip.putNextEntry( ze );
-            
-            final FileInputStream in = new FileInputStream( file );
-            
-            try
-            {
-                int bufsize = 8 * 1024;
-                final long flength = file.length();
-                
-                if( flength == 0 )
-                {
-                    return;
-                }
-                else if( flength < bufsize )
-                {
-                    bufsize = (int) flength;
-                }
-                
-                final byte[] buffer = new byte[ bufsize ];
-                int count = in.read( buffer );
-                
-                while( count != -1 )
-                {
-                    zip.write( buffer, 0, count );
-                    count = in.read( buffer );
-                }
-            }
-            finally
-            {
-                try
-                {
-                    in.close();
-                }
-                catch( IOException e ) {}
-            }
-        }
-    }
-
-    public static void unzip( final File file,
-                              final File destdir )
-
-        throws IOException
-    
-    {    
-        unzip( file, destdir, new NullProgressMonitor() );
-    }
-    
-    public static void unzip( final File file,
-                              final File destdir, 
-                              final IProgressMonitor monitor )
-
-        throws IOException
-
-    {
-        final ZipFile zip = open( file );
-        
-        try
-        {
-            final Enumeration<? extends ZipEntry> entries = zip.entries();
-            
-            final int totalWork = zip.size();
-            monitor.beginTask( Resources.progressUnzipping, totalWork );
-            
-            int c = 0;
-            
-            while( entries.hasMoreElements() )
-            {
-                final ZipEntry entry = entries.nextElement();
-                
-                monitor.worked( 1 );
-                
-                final String taskMsg = NLS.bind( Resources.progressUnzipped, c++, totalWork);
-                monitor.setTaskName( taskMsg );
-                
-                if( entry.isDirectory() ) continue;
-    
-                final File f = new File( destdir, entry.getName() );
-                final File dir = f.getParentFile();
-    
-                if( ! dir.exists() && ! dir.mkdirs() )
-                {
-                    final String msg = "Could not create dir: " + dir.getPath(); //$NON-NLS-1$
-                    throw new IOException( msg );
-                }
-    
-                InputStream in = null;
-                FileOutputStream out = null;
-                
-                try
-                {
-                    in = zip.getInputStream( entry );
-                    out = new FileOutputStream( f );
-        
-                    final byte[] bytes = new byte[ 1024 ];
-                    int count = in.read( bytes );
-        
-                    while( count != -1 )
-                    {
-                        out.write( bytes, 0, count );
-                        count = in.read( bytes );
-                    }
-                    
-                    out.flush();
-                }
-                finally
-                {
-                    if( in != null )
-                    {
-                        try
-                        {
-                            in.close();
-                        }
-                        catch( IOException e ) {}
-                    }
-        
-                    if( out != null )
-                    {
-                        try
-                        {
-                            out.close();
-                        }
-                        catch( IOException e ) {}
-                    }
-                }
-            }
-        }
-        finally
-        {
-            try
-            {
-                zip.close();
-            }
-            catch( IOException e ) {}
-        }
-    }
-    
-    public static ZipFile open( final File file )
-    
-        throws IOException
-        
-    {
-        try
-        {
-            return new ZipFile( file );
-        }
-        catch( FileNotFoundException e )
-        {
-            final FileNotFoundException fnfe
-                = new FileNotFoundException( file.getAbsolutePath() );
-            
-            fnfe.initCause( e );
-            
-            throw fnfe;
-        }
-    }
-
-    public static ZipEntry getZipEntry( final ZipFile zip,
-                                        final String name )
-    {
-        final String lcasename = name.toLowerCase();
-
-        for( Enumeration<? extends ZipEntry> itr = zip.entries(); itr.hasMoreElements(); )
-        {
-            final ZipEntry zipentry = itr.nextElement();
-
-            if( zipentry.getName().toLowerCase().equals( lcasename ) )
-            {
-                return zipentry;
-            }
-        }
-
-        return null;
-    }
-    
-    private static void delete( final File f )
-
-        throws IOException
-    
-    {
-        if( f.isDirectory() )
-        {
-            for( File child : f.listFiles() )
-            {
-                delete( child );
-            }
-        }
-    
-        if( ! f.delete() )
-        {
-            final String msg = "Could not delete " + f.getPath() + "."; //$NON-NLS-1$ //$NON-NLS-2$
-            throw new IOException( msg );
-        }
-    }
-    
-    private static final class Resources
-    
-        extends NLS
-    
-    {
-        public static String progressUnzipped;
-        public static String progressUnzipping;
-        static
-        {
-            initializeMessages( ZipUtil.class.getName(), 
-                                Resources.class );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/ZipUtil.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/ZipUtil.properties
deleted file mode 100644
index bc7f37c..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/ZipUtil.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-progressUnzipping= Expanding zip archive...
-progressUnzipped = Extracted {0} of {1} files
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/.classpath b/plugins/org.eclipse.wst.common.project.facet.doc.api/.classpath
deleted file mode 100644
index a6ee260..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry excluding=".do-not-delete" 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/plugins/org.eclipse.wst.common.project.facet.doc.api/.project b/plugins/org.eclipse.wst.common.project.facet.doc.api/.project
deleted file mode 100644
index 1018d45..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.common.project.facet.doc.api</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/plugins/org.eclipse.wst.common.project.facet.doc.api/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.common.project.facet.doc.api/META-INF/MANIFEST.MF
deleted file mode 100644
index 2dc2f8f..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,11 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Vendor: %providerName
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.wst.common.project.facet.doc.api;singleton:=true
-Bundle-Version: 1.4.100.qualifier
-Bundle-Localization: plugin
-Bundle-ClassPath: .
-Require-Bundle: org.eclipse.wst.common.project.facet.core;bundle-version="[1.3.0,2.0.0)",
- org.eclipse.wst.common.project.facet.ui;bundle-version="[1.3.0,2.0.0)"
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/about.html b/plugins/org.eclipse.wst.common.project.facet.doc.api/about.html
deleted file mode 100644
index 2199df3..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/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, 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/plugins/org.eclipse.wst.common.project.facet.doc.api/build.properties b/plugins/org.eclipse.wst.common.project.facet.doc.api/build.properties
deleted file mode 100644
index dc7fa72..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/build.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-customBuildCallbacks = customBuildCallbacks.xml
-customBuildCallbacks.failonerror = true
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               guide/,\
-               plugin.properties,\
-               plugin.xml,\
-               toc.xml,\
-               reference/,\
-               .,\
-               about.html
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/customBuildCallbacks.xml b/plugins/org.eclipse.wst.common.project.facet.doc.api/customBuildCallbacks.xml
deleted file mode 100644
index d521f24..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/customBuildCallbacks.xml
+++ /dev/null
@@ -1,156 +0,0 @@
-<!-- ===================================================================== -->
-<!-- Custom targets called from a project's generated build.xml            -->
-<!-- Set customBuildCallbacks=<path/to/this/file> in your build.properties.-->
-<!-- ===================================================================== -->
-<project name="Build specific targets and properties" default="noDefault">
-
-	<!-- ===================================================================== -->
-	<!-- Default target                                                        -->
-	<!-- ===================================================================== -->
-	<target name="noDefault">
-		<echo message="This file must be called with explicit targets" />
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do before the target build.jars                              -->
-	<!-- Available parameters :                                                -->
-	<!--   build.result.folder - folder to contain the build results           -->
-	<!-- ===================================================================== -->
-	<target name="pre.build.jars">
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do after the target build.jars                               -->
-	<!-- Available parameters :                                                -->
-	<!--   build.result.folder - folder to contain the build results           -->
-	<!-- ===================================================================== -->
-	<target name="post.build.jars">
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do before the target build.sources                           -->
-	<!-- Available parameters :                                                -->
-	<!--   build.result.folder - folder to contain the build results           -->
-	<!-- ===================================================================== -->
-	<target name="pre.build.sources">
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do after the target build.sources                            -->
-	<!-- Available parameters :                                                -->
-	<!--   build.result.folder - folder to contain the build results           -->
-	<!-- ===================================================================== -->
-	<target name="post.build.sources">
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do before the compilation target <name>                      -->
-	<!-- Substitute "name" with the name of the compilation target, eg @dot    -->
-	<!-- Available parameters :                                                -->
-	<!--   source.foldern : n = 1 ... N, the source folders                    -->
-	<!--   target.folder  : where the results of the compilation go            -->
-	<!--   <name>.classpath : name = name of the compilation target. A         -->
-	<!--                      reference to the classpath structure.            -->
-	<!-- ===================================================================== -->
-	<target name="pre.@dot">
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do during the compilation target <name>, after the compile   -->
-	<!-- but before jaring.  Substitute "name" with the name of the compilation-->
-	<!-- target, eg @dot                                                       -->
-	<!-- Available parameters :                                                -->
-	<!--   source.foldern : n = 1 ... N, the source folders                    -->
-	<!--   target.folder  : where the results of the compilation go            -->
-	<!--   <name>.classpath : name = name of the compilation target. A         -->
-	<!--                      reference to the classpath structure.            -->
-	<!-- ===================================================================== -->
-	<target name="post.compile.@dot">
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do after the compilation target <name>                       -->
-	<!-- Substitute "name" with the name of the compilation target, eg @dot    -->
-	<!-- Available parameters :                                                -->
-	<!--   jar.location - the location of the compilation results              -->
-	<!--   <name>.classpath : name = name of the compilation target. A         -->
-	<!--                      reference to the classpath structure.            -->
-	<!-- ===================================================================== -->
-
-	<target name="post.@dot">
-		<ant
-		  antfile="javadoc.xml"
-		  target="export-javadoc"
-		  inheritAll="true"
-		  inheritRefs="true"/>
-	</target>
-	
-	<!-- ===================================================================== -->
-	<!-- Steps to do before the target gather.bin.parts                         -->
-	<!-- Available parameters :                                                -->
-	<!--   build.result.folder - folder containing the build results           -->
-	<!--   target.folder - destination folder                                  -->
-	<!-- ===================================================================== -->
-	<target name="pre.gather.bin.parts">
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do after the target gather.bin.parts                         -->
-	<!-- Available parameters :                                                -->
-	<!--   build.result.folder - folder containing the build results           -->
-	<!--   target.folder - destination folder                                  -->
-	<!-- ===================================================================== -->
-	<target name="post.gather.bin.parts">
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do before the target gather.sources                          -->
-	<!-- Available parameters :                                                -->
-	<!--   destination.temp.folder - destination folder                        -->
-	<!-- ===================================================================== -->
-	<target name="pre.gather.sources">
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do after the target gather.sources                           -->
-	<!-- Available parameters :                                                -->
-	<!--   destination.temp.folder - destination folder                        -->
-	<!-- ===================================================================== -->
-	<target name="post.gather.sources">
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do before the target gather.logs                             -->
-	<!-- Available parameters :                                                -->
-	<!--   destination.temp.folder - destination folder                        -->
-	<!-- ===================================================================== -->
-	<target name="pre.gather.logs">
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do after the target gather.logs                              -->
-	<!-- Available parameters :                                                -->
-	<!--   destination.temp.folder - destination folder                        -->
-	<!-- ===================================================================== -->
-	<target name="post.gather.logs">
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do before the target clean                                   -->
-	<!-- Available parameters :                                                -->
-	<!--   destination.temp.folder - destination folder                        -->
-	<!-- ===================================================================== -->
-	<target name="pre.clean">
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do after the target clean                                    -->
-	<!-- Available parameters :                                                -->
-	<!--   plugin.destination - final destination of the build                 -->
-	<!--   build.result.folder - results of the compilation                    -->
-	<!--   temp.folder - temporary folder                                      -->
-	<!-- ===================================================================== -->
-	<target name="post.clean">
-	</target>
-	
-</project>
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/answers/projectFacetPreferences.html b/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/answers/projectFacetPreferences.html
deleted file mode 100644
index 8e1d13e..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/answers/projectFacetPreferences.html
+++ /dev/null
@@ -1,44 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<meta
-  http-equiv="Content-Type"
-  content="text/html; charset=iso-8859-1">
-<title>Managing Project Facet Preferences</title>
-<link
-  rel="stylesheet"
-  type="text/css"
-  href="../format.css">
-</head>
-
-<body>
-<p class="ueberschrift">Managing Project Facet Preferences</p>
-
-<p><b>Question: What is the best way for managing workspace and project preferences associated
-with a project facet?</b></p>
-
-<p>Faceted Project Framework can help you manage preferences associated with your facet. Two scopes
-are supported. You can store "global" preferences in workspace metadata and
-project-specific preferences in project metadata. Preferences stored at workspace level will never
-be deleted, while project-level preferences will be automatically removed when facet is uninstalled.</p>
-
-<p>To access workspace-level preferences, use the following API:</p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-FacetedProjectFramework.getPreferences( IProjectFacet facet );
-</pre></td></tr></table>
-
-<p>To access project-level preferences, use the following API:</p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-IFacetedProject.getPreferences( IProjectFacet facet );
-</pre></td></tr></table>
-
-<p>Regardless of the scope, make sure to call flush() after making the changes to make sure that
-changes are persisted to disk.</p>
-
-</body>
-</html>
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/description.html b/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/description.html
deleted file mode 100644
index e3c8a66..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/description.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<meta
-  http-equiv="Content-Type"
-  content="text/html; charset=iso-8859-1">
-<title>Checking WTP out</title>
-<link
-  rel="stylesheet"
-  type="text/css"
-  href="format.css">
-</head>
-
-<body>
-<p class="ueberschrift">Faceted Project Framework</p>
-
-<p>The Faceted Project Framework allows the plugin developer to think of 
-projects as composed of units of functionality, otherwise known as facets, that 
-can be added and removed by the user.</p>
-
-<p>Project facets are most frequently used for adding natures, builders, 
-classpath entries, and resources to a project.</p>
-
-<p>Primary Benefits</p>
-
-<ul>
-  <li>Consistent user experience.</li>
-  <li>Ability to accurately describe capabilities of the runtime platform.</li>
-</ul>
-
-</body>
-</html>
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/downloads/enablement-example.zip b/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/downloads/enablement-example.zip
deleted file mode 100644
index 03e7c89..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/downloads/enablement-example.zip
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/enabling-based-on-facets.html b/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/enabling-based-on-facets.html
deleted file mode 100644
index 50ce36a..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/enabling-based-on-facets.html
+++ /dev/null
@@ -1,108 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<html>
-  
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-  <title>Enabling UI Elements Based on Project Facets</title>
-  <link type="text/css" rel="stylesheet" href="tutorial/tutorial.css"/>
-</head>
-
-<body>
-
-<h1 align="center">Enabling UI Elements Based on Project Facets</h1>
-
-<p>User interface elements often need to be selectively enabled based on the
-presence of a facet in a project. The two most common examples are project 
-properties pages and menu actions associated with a facet. The Faceted Project
-Framework provides a way to do that via a property tester that can be used in
-any extension point that supports the Eclipse Platform's common expression
-language.</p>
-
-<p>
-  <b>Property Name:</b> <code>org.eclipse.wst.common.project.facet.core.projectFacet</code><br/>
-  <b>Property Value:</b> <code>[facet.id](:[version.expr])?</code>
-</p>
-
-<p>As you can see from the format of the property value, you can either test
-using just the project facet id or you can also include a version expression if
-only certain versions should be matched.</p>
-
-<p>The following two examples demonstrate how the facets property tester can be
-used. To explore further, you can also download the 
-<a href="downloads/enablement-example.zip">complete runnable source</a> of these
-examples.</p>
-
-<p><b>Example 1</b></p>
-
-<p>Enables a project properties page based on the presence of a facet. Note the
-use of the <code>forcePluginActivation</code> attribute. This attribute makes
-sure that the property tester will be invoked even if the Faceted Project
-Framework plugins have not been activated yet. Omitting this attribute will cause
-the test expression to return false in that situation. Also note the use of the
-<code>adapt</code> operator to adapt the object to <code>IProject</code>. This
-is necessary as some views may represent project entities using other types. For
-instance, in the JDT's Package Explorer the projects are instances of
-<code>org.eclipse.jdt.core.IJavaProject</code>.</p>
-
-<div class="code">
-<pre class="code-xml">&lt;extension point="<span class="code-text">org.eclipse.ui.propertyPages</span>"&gt;
-  &lt;page
-    id="<span class="code-text">ExampleFacetPropertiesPage</span>"
-    objectClass="<span class="code-text">org.eclipse.core.resources.IProject</span>"
-    adaptable="<span class="code-text">true</span>"
-    name="<span class="code-text">Example Facet Properties</span>"
-    class="<span class="code-text">org.eclipse.wst.project.facet.examples.enablement.ExampleFacetPropertiesPage</span>"&gt;
-    &lt;enabledWhen&gt;
-      &lt;adapt type="<span class="code-text">org.eclipse.core.resources.IProject</span>"&gt;
-        &lt;test 
-          forcePluginActivation="<span class="code-text">true</span>"
-          property="<span class="code-text">org.eclipse.wst.common.project.facet.core.projectFacet</span>"
-          value="<span class="code-text">example.facet1</span>"/&gt;
-      &lt;/adapt&gt;
-    &lt;/enabledWhen&gt;          
-  &lt;/page&gt;
-&lt;/extension&gt;</pre>
-</div>
-
-<p><b>Example 2</b></p>
-
-<p>Enables a menu action if either one of the two facets specified is installed
-in a project. Note the use of a version expression to match only certain versions.</p>
-
-<div class="code">
-<pre class="code-xml">&lt;extension point="<span class="code-text">org.eclipse.ui.popupMenus</span>"&gt;
-  &lt;objectContribution
-    id="<span class="code-text">exampleFacetPopup</span>"
-    objectClass="<span class="code-text">org.eclipse.core.resources.IProject</span>"
-    adaptable="<span class="code-text">true</span>"&gt;
-    &lt;action
-      id="<span class="code-text">exampleFacetPopupAction</span>"
-      label="<span class="code-text">Example Facet Popup</span>"
-      class="<span class="code-text">org.eclipse.wst.project.facet.examples.enablement.ExampleFacetPopupAction</span>"
-      menubarPath="<span class="code-text">additions</span>"
-      enablesFor="<span class="code-text">+</span>"&gt;
-    &lt;/action&gt;
-    &lt;enablement&gt;
-      &lt;adapt type="<span class="code-text">org.eclipse.core.resources.IProject</span>"&gt;
-        &lt;or&gt;
-          &lt;test 
-            forcePluginActivation="<span class="code-text">true</span>"
-            property="<span class="code-text">org.eclipse.wst.common.project.facet.core.projectFacet</span>"
-            value="<span class="code-text">example.facet1:1.0</span>"/&gt;
-          &lt;test 
-            forcePluginActivation="<span class="code-text">true</span>"
-            property="<span class="code-text">org.eclipse.wst.common.project.facet.core.projectFacet</span>"
-            value="<span class="code-text">example.facet2:[1.1-2.2]</span>"/&gt;
-        &lt;/or&gt;
-      &lt;/adapt&gt;
-    &lt;/enablement&gt;
-  &lt;/objectContribution&gt;  
-&lt;/extension&gt;</pre>
-</div>
-
-<br/><br/><br/><br/>
-
-</body>
-
-</html>
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/format.css b/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/format.css
deleted file mode 100644
index c02625e..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/format.css
+++ /dev/null
@@ -1,35 +0,0 @@
-/* CSS Document */
-body {
-	font-family: Arial, Helvetica, sans-serif
-}
-
-.ueberschrift {
-	font-family: Arial, Helvetica, sans-serif;
-	font-size: x-large;
-	margin-top: 20px;
-}
-
-.code {
-	font-family: Courier, "Courier New", Arial, Helvetica, sans-serif;
-	font-size: 11px;
-	font-weight: normal;
-	line-height: 16px;
-	color: #0467B4;
-	background-color: #CCCCCC;
-	padding: 5px 7px 5px 13px;
-	border: 1px solid black;
-}
-
-.note {
-	font-size: smaller
-}
-
-.description {
-	font-family: "Times New Roman", Times, serif;
-	font-size: xx-large;
-}
-
-.schema {
-	font-style: italic;
-	font-size: large
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/listeners.html b/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/listeners.html
deleted file mode 100644
index a9c725c..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/listeners.html
+++ /dev/null
@@ -1,296 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<html>
-  
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-  <title>Listening for Changes to Faceted Projects</title>
-  <link type="text/css" rel="stylesheet" href="tutorial/tutorial.css"/>
-</head>
-
-<body>
-
-<style type="text/css">
-  
-  .subHeader
-  {
-    font-size: 16px;
-    font-weight: bold;
-  }
-  
-  .eventsTableHeaderCell
-  {
-    font-weight: bold;
-    border-bottom: 1px solid #000000;
-    padding: 2px;
-  }
-  
-  .eventsTableTypeCell
-  {
-    vertical-align: top;
-    padding-top: 2px;
-    padding-bottom: 2px;
-    padding-left: 2px;
-    padding-right: 20px;
-  }
-  
-  .eventsTableInterfaceCell
-  {
-    vertical-align: top;
-    padding-top: 2px;
-    padding-bottom: 2px;
-    padding-left: 2px;
-    padding-right: 20px;
-  }
-  
-  .eventsTableDescriptionCell
-  {
-    vertical-align: top;
-    padding: 2px;
-  }
-
-</style>
-
-<h1 align="center">Listening for Changes to Faceted Projects</h1>
-
-<p>The Faceted Project Framework provides a facility that will notify any interested parties when
-a change is made to the model of a faceted project. Listeners can be registered either via a direct
-API call or via an extension point. Listeners can be global or scoped to a specific project.</p>
-
-<p class="subHeader">Events</p>
-
-<table style="border-collapse:collapse">
-
-  <tr>
-    <td class="eventsTableHeaderCell">Event Type</td>
-    <td class="eventsTableHeaderCell">Event Object Interface</td>
-    <td class="eventsTableHeaderCell">Description</td>
-  </tr>
-
-  <tr>
-    <td class="eventsTableTypeCell">PROJECT_MODIFIED</td>
-    <td class="eventsTableInterfaceCell">IFacetedProjectEvent</td>
-    <td class="eventsTableDescriptionCell">
-      Gets triggered when faceted project metadata is modified in any way. No detailed information 
-      about the change is provided. Note that while listening for PROJECT_MODIFIED events is 
-      guaranteed to catch all other events, the inverse is not true. Listing on all the other 
-      events is not guaranteed to catch all PROJECT_MODIFIED events. This is because there are 
-      circumstances when the system does not have the details about the type of the change 
-      (such as when the faceted project metadata file is modified on disk).
-    </td>
-  </tr>
-  
-  <tr>
-    <td class="eventsTableTypeCell">PRE_INSTALL</td>
-    <td class="eventsTableInterfaceCell">IProjectFacetActionEvent</td>
-    <td class="eventsTableDescriptionCell">
-      Gets triggered right before a facet is installed.
-    </td>
-  </tr>
-  
-  <tr>
-    <td class="eventsTableTypeCell">POST_INSTALL</td>
-    <td class="eventsTableInterfaceCell">IProjectFacetActionEvent</td>
-    <td>Gets triggered right after a facet is installed.</td>
-  </tr>
-  
-  <tr>
-    <td class="eventsTableTypeCell">PRE_UNINSTALL</td>
-    <td class="eventsTableInterfaceCell">IProjectFacetActionEvent</td>
-    <td class="eventsTableDescriptionCell">
-      Gets triggered right before a facet is uninstalled.
-    </td>
-  </tr>
-  
-  <tr>
-    <td class="eventsTableTypeCell">POST_UNINSTALL</td>
-    <td class="eventsTableInterfaceCell">IProjectFacetActionEvent</td>
-    <td class="eventsTableDescriptionCell">
-      Gets triggered right after a facet is uninstalled.
-    </td>
-  </tr>
-  
-  <tr>
-    <td class="eventsTableTypeCell">PRE_VERSION_CHANGE</td>
-    <td class="eventsTableInterfaceCell">IProjectFacetActionEvent</td>
-    <td class="eventsTableDescriptionCell">
-      Gets triggered right before a facet version is changed.
-    </td>
-  </tr>
-  
-  <tr>
-    <td class="eventsTableTypeCell">POST_VERSION_CHANGE</td>
-    <td class="eventsTableInterfaceCell">IProjectFacetActionEvent</td>
-    <td class="eventsTableDescriptionCell">
-      Gets triggered right after a facet version is changed.
-    </td>
-  </tr>
-  
-  <tr>
-    <td class="eventsTableTypeCell">FIXED_FACETS_CHANGED</td>
-    <td class="eventsTableInterfaceCell">IFixedFacetsChangedEvent</td>
-    <td class="eventsTableDescriptionCell">
-      Gets triggered when project's fixed facets are changed.
-    </td>
-  </tr>
-  
-  <tr>
-    <td class="eventsTableTypeCell">TARGETED_RUNTIMES_CHANGED</td>
-    <td class="eventsTableInterfaceCell">ITargetedRuntimesChangedEvent</td>
-    <td class="eventsTableDescriptionCell">
-      Gets triggered when the set of runtimes that the project targets is changed.
-    </td>
-  </tr>
-  
-  <tr>
-    <td class="eventsTableTypeCell">PRIMARY_RUNTIME_CHANGED</td>
-    <td class="eventsTableInterfaceCell">IPrimaryRuntimeChangedEvent</td>
-    <td class="eventsTableDescriptionCell">
-      Gets triggered when the primary targeted runtime of the project is changed.
-    </td>
-  </tr>
-    
-</table>
-
-<p class="subHeader">Registering a Listener</p>
-
-<p>All listeners have to implement <code>IFacetedProjectListener</code> interface which looks like
-this:</p>
-
-<div class="code">
-<pre class="java-code"><span class="java-keyword">package</span> org.eclipse.wst.common.project.facet.core.events;
-
-<span class="java-keyword">public interface</span> IFacetedProjectListener 
-{
-    <span class="java-keyword">void</span> handleEvent( IFacetedProjectEvent event );
-}
-</pre>
-</div>
-
-<p>Depending on the event type, it may be possible to cast the event object to a more specific
-interface in order to get details about the event. See the event table for information about which
-event object interface corresponds with which event type.</p>
-
-<p>There are three ways to register a listener:</p>
-
-<ol>
-  <li>IFacetedProject.addListener()</li>
-  <li>FacetedProjectFramework.addListener()</li>
-  <li>Extension Point: org.eclipse.wst.common.project.facet.core.listeners</p>
-</ol>
-
-<p>All of these methods allows you to specify which events the listener should be notified about. 
-Not specifying event types on registration will cause the listener to be notified about all events. 
-This is typically not desired. If a listener needs to react to any change in the project and has no 
-need to analyze specific events, it should be registered for the <code>PROJECT_MODIFIED</code> 
-event.</p>
-
-<p>The first method registers a listener that is scoped to a specific project. The last two
-register a global listener which will be notified about changes in all faceted projects that are
-present in the workspace. In most circumstances, if a global listener is needed, it should be 
-registered via the extension point rather than using <code>FacetedProjectFramework.addListener()</code>
-API. Using the extension point guarantees that the listener will not miss any events due to not
-being registered early enough. It also delays initialization of the plugin bundle containing the
-listener until an event that the listener is interested in is fired.</p>
-
-<p class="subHeader">Extension Point</p>
-
-<p>The extension point that's used for registering listeners is quite simple. Only two pices of
-information need to be supplied: the listener class name and an optional list of event types.</p>
-
-<div class="code">
-<pre class="xml-code">&lt;extension point="<span class="code-text">org.eclipse.wst.common.project.facet.core.listeners</span>"&gt;
-  &lt;listener 
-    class="<span class="code-text">{class:org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener}</span>"
-    eventTypes="<span class="code-text">{event.types}</span>"/> <i>(1 or more)</i>
-&lt;extension&gt;
-</pre>
-</div>
-
-<p>The <code>eventTypes</code> attribute value should be a comma-separated list of event types.</p>
-
-<p class="subHeader">Examples</p>
-
-<p>This example registers a very simple listener that prints out events received. The listener is
-registered several different ways for the purposes of this example.</p>
-
-<div class="code">
-<pre class="java-code"><span class="java-keyword">package</span> com.mycorp.myproduct;
-
-<span class="java-keyword">import</span> org.eclipse.wst.common.project.facet.core.events.IFacetedProjectEvent;
-<span class="java-keyword">import</span> org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener;
-
-<span class="java-keyword">public final class</span> ListenerImpl <span class="java-keyword">implements</span> IFacetedProjectListener 
-{
-    <span class="java-keyword">public void</span> handleEvent( <span class="java-keyword">final</span> IFacetedProjectEvent event )
-    {
-        System.out.println( event.toString() );
-    }
-}
-</pre>
-</div>
-
-<p>The following code snippet registers the above listener on a specific project to listen for
-changes in the runtimes that the project targets.</p>
-
-<div class="code">
-<pre class="java-code"><span class="java-keyword">import</span> org.eclipse.core.resources.IProject;
-<span class="java-keyword">import</span> org.eclipse.wst.common.project.facet.core.IFacetedProject;
-<span class="java-keyword">import</span> org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-<span class="java-keyword">import</span> org.eclipse.wst.common.project.facet.core.events.IFacetedProjectEvent;
-
-...
-
-IProject pj;
-
-...
-
-<span class="java-keyword">final</span> IFacetedProject fpj = ProjectFacetsManager.create( pj );
-<span class="java-keyword">final</span> ListenerImpl listener = <span class="java-keyword">new</span> ListenerImpl();
-
-fpj.addListener( listener, 
-                 IFacetedProjectEvent.Type.TARGETED_RUNTIMES_CHANGED,
-                 IFacetedProjectEvent.Type.PRIMARY_RUNTIME_CHANGED );
-                 
-...
-
-fpj.removeListener( listener );
-</pre>
-</div>
-
-<p>The following code snippet register the above listener to listen for the PRE_INSTALL and
-PRE_UNINSTALL events in all faceted projects.</p>
-
-<div class="code">
-<pre class="java-code"><span class="java-keyword">import</span> org.eclipse.wst.common.project.facet.core.FacetedProjectFramework;
-<span class="java-keyword">import</span> org.eclipse.wst.common.project.facet.core.events.IFacetedProjectEvent;
-
-...
-
-<span class="java-keyword">final</span> ListenerImpl listener = <span class="java-keyword">new</span> ListenerImpl();
-
-FacetedProjectFramework.addListener( listener, 
-                                     IFacetedProjectEvent.Type.PRE_INSTALL,
-                                     IFacetedProjectEvent.Type.PRE_UNINSTALL );
-                 
-...
-
-FacetedProjectFramework.removeListener( listener );
-</pre>
-</div>
-
-<p>The following code snippet accomplishes the same thing as the one above, except it does this
-via the extension point.</p>
-
-<div class="code">
-<pre class="xml-code">&lt;extension point="<span class="code-text">org.eclipse.wst.common.project.facet.core.listeners</span>"&gt;
-  &lt;listener class="<span class="code-text">com.mycorp.myproduct.ListenerImpl</span>" eventTypes="<span class="code-text">PRE_INSTALL,PRE_UNINSTALL</span>"/>
-&lt;extension&gt;
-</pre>
-</div>
-
-<br/><br/><br/><br/>
-
-</body>
-
-</html>
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen01.gif b/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen01.gif
deleted file mode 100644
index 6d8bfb7..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen01.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen02.gif b/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen02.gif
deleted file mode 100644
index a481aef..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen02.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen03.gif b/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen03.gif
deleted file mode 100644
index c61e29e..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen03.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen04.gif b/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen04.gif
deleted file mode 100644
index fae4b62..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen04.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen05.gif b/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen05.gif
deleted file mode 100644
index b33903e..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen05.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen06.gif b/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen06.gif
deleted file mode 100644
index 977690b..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen06.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen07.gif b/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen07.gif
deleted file mode 100644
index 3133e18..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen07.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen08.gif b/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen08.gif
deleted file mode 100644
index e4040ca..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen08.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/materials/solution.zip b/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/materials/solution.zip
deleted file mode 100644
index 499b7dc..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/materials/solution.zip
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/materials/starter.zip b/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/materials/starter.zip
deleted file mode 100644
index bc20cab..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/materials/starter.zip
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/tutorial.css b/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/tutorial.css
deleted file mode 100644
index 27036ad..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/tutorial.css
+++ /dev/null
@@ -1,120 +0,0 @@
-p, table, td, th {  font-family: arial, helvetica, geneva; font-size: 10pt}
-pre {  font-family: "Courier New", Courier, mono; font-size: 10pt}
-h2 { font-family: arial, helvetica, geneva; font-size: 18pt; font-weight: bold; line-height: 14px; margin-top: 30px}
-code {  font-family: "Courier New", Courier, mono; font-size: 10pt}
-sup {  font-family: arial,helvetica,geneva; font-size: 10px}
-h3 {  font-family: arial, helvetica, geneva; font-size: 14pt; font-weight: bold}
-li {  font-family: arial, helvetica, geneva; font-size: 10pt}
-h1 {  font-family: arial, helvetica, geneva; font-size: 28px; font-weight: bold}
-body {  font-family: arial, helvetica, geneva; font-size: 10pt; clip:   rect(   ); margin-top: 5mm; margin-left: 3mm}
-.indextop { font-size: x-large;; font-family: Verdana, Arial, Helvetica, sans-serif; font-weight: bold}
-.indexsub { font-size: xx-small;; font-family: Arial, Helvetica, sans-serif; color: #8080FF}
-
-pre {
-    padding: 0px;
-    margin-top: 0px;
-    margin-left: 0px;
-    margin-bottom: 0px;
-    margin-right: 0px;
-    text-align: left;
-}
-
-.code {
- 	border: 1px dashed #3c78b5;
-    font-size: 11px;
-	font-family: Courier;
-    margin: 10px;
-	line-height: 13px;
-    text-align: left;
-    background-color: #f0f0f0;
-    padding: 10px;
-}
-
-.code-xml {
-  color: #000000;
-}
-
-.schema-type
-{
-  color: #009100;
-  background-color: inherit;
-}
-
-.schema-type-link a:link
-{
-  color: #009100;
-  text-decoration: none
-}
-
-.schema-type-link a:visited
-{
-  color: #009100;
-  text-decoration: none
-}
-
-.schema-control {
-  color: #009100;
-  font-style: italic;
-  background-color: inherit;
-}
-
-.code-text {
-  color: #009100;
-  background-color: inherit;
-}
-
-.context-code {
-  color: #767676;
-  background-color: inherit;
-}
-
-.xml-text
-{
-  color: #009100;
-}
-
-.java-code 
-{
-  color: #000000;
-}
-
-.java-comment 
-{
-  color: #009100;
-}
-
-.java-javadoc-keyword
-{
-  font-weight: bold;
-}
-
-.java-keyword
-{
-  color: #7f0055;
-  font-weight: bold;
-}
-
-.java-literal
-{
-  color: #009100;
-}
-
-.java-context
-{
-  color: #767676;
-}	
-
-.java-context-keyword
-{
-  font-weight: bold;
-}	
-
-.screen-shot 
-{
-    margin: 10px;
-}
-
-.block-indent 
-{
-    margin: 10px;
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/tutorial.html b/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/tutorial.html
deleted file mode 100644
index 09625b5..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/tutorial.html
+++ /dev/null
@@ -1,1203 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<html>
-  
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-  <title>Extending WTP Using Project Facets</title>
-  <link type="text/css" rel="stylesheet" href="tutorial.css"/>
-</head>
-
-<body>
-
-<h1 align="center">Extending WTP Using Project Facets</h1>
-
-<blockquote>
-<b>Summary</b><br/>
-The Faceted Project Framework allows the plugin developer to think of Web Tools 
-Platform (WTP) projects as composed of units of functionality, otherwise known 
-as facets, that can be added and removed by the user. This tutorial walks you 
-through an example of creating a couple of basic facets and in the process 
-covers the majority of the framework's extension points. This tutorial has been
-written for version 1.5 of the Web Tools Platform.
-<br/><br/>
-
-<b>Konstantin Komissarchik</b><br/>
-BEA Systems, Inc.<br/>
-September 5, 2006
-</blockquote>
-
-<hr width="100%">
-
-<h2>Introduction</h2>
-
-<p>Faceted Project Framework provides a powerful mechanism for extending the
-capabilities of the Web Tools Platform. Project facets are typically used as
-a way of adding functionality to a project. When a facet is added to the
-project it can perform any necessary setup actions such as copying resources, 
-installing builders, adding natures, etc. Facets can also be used as markers for
-enabling user interface elements.</p>
-
-<p>Some of the readers may be wondering how
-facets are different from the project natures which are supported by the Eclipse
-platform. Natures are designed to be hidden from user's view. They are
-essentially markers that are set behind the scenes by tooling. Project facets,
-on the other hand, have been designed from the ground up to be manipulated by
-the end users. The Faceted Project Framework provides all the necessary user 
-interface elements for managing the facets on a project and since facets
-are self describing the user is prevented from creating invalid configurations.
-Basically, it is no longer necessary to write custom project creation wizards or
-the "Enable Feature X" menu actions. Common way of managing which facets are
-installed on a project means less burden on the plugin writer and better end user
-experience.</p>
-
-<p>This tutorial covers the extension points and Java API that are used for 
-creating project facets. The reader is assumed to be already familiar with 
-developing plugins for Eclipse and to have user-level knowledge of the Web Tools 
-Platform.</p>
-
-<h2>Tutorial Scenario</h2>
-
-<p>You are a developer for a company which develops a product called
-FormGen. FormGen is basically a servlet that generates HTML forms based on XML
-definition files. The product is composed of a jar containing the servlet and
-some basic widgets. There is also an add-on jar with some extra widgets. Users
-have been manually adding the jars into the WEB-INF/lib directories of their
-web projects and setting up the servlet definitions in web.xml by hand. Your
-task is to make this setup easier by writing a couple of project facets that
-will perform these actions automatically.</p>
-
-<h2>Table of Contents</h2>
-
-<div class="block-indent">
-1. <a href="#getting.started">Getting Started</a><br/>
-2. <a href="#creating.basic.facets">Creating Basic Facet Definitions</a><br/>
-3. <a href="#specifying.constraints">Specifying Constraints</a><br/>
-4. <a href="#implementing.actions">Implementing Actions</a><br/>
-5. <a href="#creating.categories">Creating Categories</a><br/>
-6. <a href="#decorating">Decorating</a><br/>
-7. <a href="#adding.wizard.pages">Adding Wizard Pages</a><br/>
-8. <a href="#defining.presets">Defining Presets</a><br/>
-9. <a href="#runtime.mappings">Specifying Runtime Support Mappings</a><br/>
-10. <a href="#summary">Summary</a><br/>
-Appendix A: <a href="#custom.version.comparators">Custom Version Comparators</a><br/>
-Appendix B: <a href="#version.expressions">Version Expressions</a><br/>
-Appendix C: <a href="#property.tester">Property Tester</a><br/>
-Appendix D: <a href="#wizard.context">Wizard Context</a><br/>
-</div>
-
-<h2><a name="getting.started">1. Getting Started</a></h2>
-
-<p>To follow along with this tutorial, you will need to have a working install 
-of Web Tools Platform v1.5. The tutorial is not designed to be used with 1.0.x
-version of WTP as there are numerous extension point and API differences. You 
-can download the install kits for WTP and its prerequisites, including Eclipse 
-Platform v3.2, at the following locations:</p>
-
-<ul>
-  <li><a href="http://download.eclipse.org/eclipse/downloads/">Eclipse Platform Download Site</a></li>
-  <li><a href="http://download.eclipse.org/webtools/downloads/">Web Tools Platform Download Site</a></li>
-</ul>
-
-<p>Once the required software has been installed you will need to
-create a new workspace and add the <a href="materials/starter.zip">starter project</a>
-to it. The starter project includes the materials and utility code that will
-be used in this tutorial. If you get stuck at any point you can take a peek at
-the <a href="materials/solution.zip">solution project</a>.</p>
-
-<h2><a name="creating.basic.facets">2. Creating Basic Facet Definitions</a></h2>
-
-<p>Project facets are declared via the <code>org.eclipse.wst.common.project.facet.core.facets</code>
-extension point. This is a pretty large extension point with lots of facilities,
-but we will start small and progress incrementally while building the tutorial
-facets. Here is the part of the schema that we will be working with initially:</p>
-
-<div class="code">
-<pre class="code-xml">&lt;extension point="org.eclipse.wst.common.project.facet.core.facets"&gt;
-
-  &lt;project-facet id="<span class="schema-type">{string}</span>"&gt; <span class="schema-control">(0 or more)</span>
-    &lt;label&gt;<span class="schema-type">{string}</span>&lt;/label&gt;
-    &lt;description&gt;<span class="schema-type">{string}</span>&lt;/description&gt; <span class="schema-control">(optional)</span>
-  &lt;/project-facet&gt;
-
-  &lt;project-facet-version facet="<span class="schema-type">{string}</span>" version="<span class="schema-type">{string}</span>"/&gt; <span class="schema-control">(0 or more)</span>
-  
-&lt;/extension&gt;</pre>
-</div>
-
-<p>As you can see, there are two top-level elements in this part of the extension
-point schema. The <code>&lt;project-facet&gt;</code> element is used to declare
-the facet itself. The <code>&lt;project-facet-version&gt;</code> element is used
-to declare versions of the facet. Every facet implementation needs to provide
-at least one facet version declaration. In fact, as you will see later in this
-tutorial, the bulk of the work happens in the <code>&lt;project-facet-version&gt;</code>
-declaration. For now all you need to remember is that a facet cannot be used
-unless it has at least one version.</p>
-
-<div class="code">
-<pre class="code-xml">&lt;extension point="<span class="code-text">org.eclipse.wst.common.project.facet.core.facets</span>"&gt;
-
-  &lt;project-facet id="<span class="code-text">formgen.core</span>"&gt;
-    &lt;label&gt;<span class="code-text">FormGen Core</span>&lt;/label&gt;
-    &lt;description&gt;
-      <span class="code-text">Enables generation of HTML forms based on XML definition files.</span>
-    &lt;/description&gt;
-  &lt;/project-facet&gt;
-
-  &lt;project-facet-version facet="<span class="code-text">formgen.core</span>" version="<span class="code-text">1.0</span>"/&gt;
-
-  &lt;project-facet id="<span class="code-text">formgen.ext</span>"&gt;
-    &lt;label&gt;<span class="code-text">FormGen Extensions</span>&lt;/label&gt;
-    &lt;description&gt;
-      <span class="code-text">Enables additional FormGen widgets.</span>
-    &lt;/description&gt;
-  &lt;/project-facet&gt;
-
-  &lt;project-facet-version facet="<span class="code-text">formgen.ext</span>" version="<span class="code-text">1.0</span>"/&gt;
-  
-&lt;/extension&gt;</pre>
-</div>
-
-<p>Insert the above code into your plugin.xml file and lets see it in action.
-Launch Eclipse with your FormGen plugin and then open the Dynamic Web Project
-wizard. Make sure that <code>&lt;none&gt;</code> is selected in the Target Runtime
-field on the first page and go to the second page. You should see a screen that
-looks like the following. Note that the FormGen facets that you have created
-are displayed.</p>
-
-<div class="screen-shot"><img src="images/screen01.gif"/></div>
-
-<h2><a name="specifying.constraints">3. Specifying Constraints</a></h2>
-
-<p>One of the problems with what we have so far is that the FormGen facets
-appear in other module project wizards such as the EJB Project Wizard. That, of
-course, makes no sense since FormGen is servlet-based technology and so is only
-applicable to J2EE web applications. To solve this problem we will use the 
-constraint mechanism to specify the dependencies.</p>
-
-<p>Here is what that part of the extension point schema looks like:</p>
-
-<div class="code">
-<pre class="code-xml"><span class="context-code">&lt;extension point="org.eclipse.wst.common.project.facet.core.facets"&gt;
-  &lt;project-facet-version&gt;</span>
-    &lt;constraint&gt; <span class="schema-control">(optional)</span>
-      <span class="schema-control">[expr]</span>
-    &lt;/constraint&gt;
-  <span class="context-code">&lt;/project-facet-version&gt;
-&lt;/extension&gt;</span>
-
-<span class="schema-control">[expr] =</span>
-  &lt;requires facet="<span class="schema-type">{string}</span>" version="<span class="schema-type"><span class="schema-type-link">{<a href="#version.expressions">version.expr</a>}</span></span>" soft="<span class="schema-type">{boolean}</span>"/&gt; <span class="schema-control">or</span>
-  &lt;conflicts facet="<span class="schema-type">{string}</span>" version="<span class="schema-type"><span class="schema-type-link">{<a href="#version.expressions">version.expr</a>}</span></span>"/&gt; <span class="schema-control">or</span>
-  &lt;conflicts group="<span class="schema-type">{string}</span>"/&gt; <span class="schema-control">or</span>
-  &lt;and&gt;
-    <span class="schema-control">[expr]</span> <span class="schema-control">(1 or more)</span>
-  &lt;/and&gt; <span class="schema-control">or</span>
-  &lt;or&gt;
-    <span class="schema-control">[expr]</span> <span class="schema-control">(1 or more)</span>
-  &lt;/or&gt;</pre>
-</div>
-
-<p>As you can see, the constraint is an expression tree and you have four
-operators at your disposal. Lets go over them one by one.</p>
-
-<div style="margin-left: 10px">
-<p><b>requires</b></p>
-
-<p>The <code>requires</code> operator is the most frequently used of all the operators. 
-It is used to specify a dependency on another facet. If the <code>version</code>
-attribute is not specified, any version of the referenced facet will satisfy
-the constraint. If only specific versions will do, the <code>version</code> 
-attribute can contain a <a href="#version.expressions">version expression</a>.</p>
-
-<p>The <code>soft</code> attribute is used to create a special kind of a
-dependency. Facet selection will not be prevented if the dependency is not
-met, but if the dependency is met, the facet is guaranteed to be installed
-after the referenced facet.</p>
-
-<p><b>conflicts</b></p>
-
-<p>The <code>conflicts</code> constraint is used to indicate that the declaring
-facet will not work correctly if installed into the same project as referenced
-facets. The <code>conflicts</code> constraint comes in two flavors. You can
-either specify a conflict with a single facet or with a group of facets.</p>
-
-<p>What are groups of facets? Facet groups are a way to designate a conflict with
-a certain class of facets without having to list all of the facets explicitly.
-For instance, the WTP module facets all belong to the "modules" group. They also
-each declare a conflict with the "modules" group. This prevents two module facets
-from being installed into the same project. By declaring a conflict with a
-group whose membership can expand as necessary, third parties can add module
-facets on top of WTP and have the new facets interact correctly with the
-built-in module facets.</p>
-
-<p>A facet group is created the first time a facet declares group membership.
-Here is the extension point schema for declaring group membership:</p>
-
-<div class="code">
-<pre class="code-xml"><span class="context-code">&lt;extension point="org.eclipse.wst.common.project.facet.core.facets"&gt;
-  &lt;project-facet-version&gt;</span>
-    &lt;group-member id="<span class="schema-type">{string}</span>"/&gt; <span class="schema-control">(0 or more)</span>
-  <span class="context-code">&lt;/project-facet-version&gt;
-&lt;/extension&gt;</span>
-</pre>
-</div>
-
-<p><b>and &amp; or</b>
-
-<p>The <code>and</code> &amp; <code>or</code> constraints are used to perform 
-logical conjunction and disjunction over their operands. Although it is legal
-for these operators to have only one operand, typically they will have two or
-more.</p>
-</div>
-
-<p>We can now specify the constraints for the FormGen facets. The facet id that
-marks a project as a J2EE web module is <code>jst.web</code>. We will setup
-a dependency on it from the <code>formgen.core</code> facet. The
-<code>formgen.ext</code> facet can then depend on the <code>formgen.ext</code>
-facet. That latter constraint will ensure that the FormGen Extensions
-are not installed without installing FormGen Core.</p>
-
-<div class="code">
-<pre class="code-xml"><span class="context-code">&lt;extension point="org.eclipse.wst.common.project.facet.core.facets"&gt;
-
-  &lt;project-facet-version id="formgen.core" version="1.0"&gt;</span>
-    &lt;constraint&gt;
-      &lt;requires facet="<span class="xml-text">jst.web</span>" version="<span class="xml-text">2.2,2.3,2.4</span>"/&gt;
-    &lt;/constraint&gt;
-  <span class="context-code">&lt;/project-facet&gt;
-
-  &lt;project-facet-version id="formgen.ext" version="1.0"&gt;</span>
-    &lt;constraint&gt;
-      &lt;requires facet="<span class="xml-text">formgen.core</span>" version="<span class="xml-text">1.0</span>"/&gt;
-    &lt;/constraint&gt;
-  <span class="context-code">&lt;/project-facet&gt;
-  
-&lt;/extension&gt;</span></pre>
-</div>
-
-<p>Once the above code is added, the FormGen facets should only appear in the
-Dynamic Web Project wizard.</p>
-
-<h2><a name="implementing.actions">4. Implementing Actions</a></h2>
-
-<p>Let's now try selecting the FormGen Core facet on the facets selection page
-of the Dynamic Web Project wizard. If you do that, you should see the
-following error message appear.</p>
-
-<div class="screen-shot"><img src="images/screen02.gif"/></div>
-
-<p>This error message is displayed because the install action has not been
-implemented for this facet. What's an action? An action is an operation that a
-user can perform on a facet. There are three action types <code>INSTALL</code>,
-<code>UNINSTALL</code>, and <code>VERSION_CHANGE</code>. We will now implement
-the install actions for the FormGen facets.</p>
-
-<p>Here is what that part of the extension point schema looks like:</p>
-
-<div class="code">
-<pre class="code-xml"><span class="context-code">&lt;extension point="org.eclipse.wst.common.project.facet.core.facets"&gt;</span>
-  &lt;action id="<span class="schema-type">{string}</span>" facet="<span class="schema-type">{string}</span>" version="<span class="schema-type"><span class="schema-type-link">{<a href="#version.expressions">version.expr</a>}</span></span>" type="<span class="schema-type">INSTALL|UNINSTALL|VERSION_CHANGE</span>"&gt;
-    &lt;delegate class="<span class="schema-type">{class:org.eclipse.wst.common.project.facet.core.IDelegate}</span>"/&gt;
-    &lt;property name="<span class="schema-type">{string}</span>" value="<span class="schema-type">{string}</span>"/&gt; <span class="schema-control">(0 or more)</span>
-  &lt;/action&gt;
-<span class="context-code">&lt;/extension&gt;</span>
-</pre>
-</div>
-
-<ul>
-
-  <li><p>The version attribute can contain a single version or a <a href="#version.expressions">version expression</a>.
-    It can also be omitted if the action applies to all versions of the facet.</p></li>
-    
-  <li><p>The <code>id</code> attribute is optional. If not specified, the framework
-    will automatically generate one using the following pattern:</p>
-    <p><code>[facet-id]#[version-expression]#[action-type](#[prop-name]=[prop-value])*</code></p>
-    <p>As you can see, it is better to provide an explicit id rather than letting
-    the framework generate it. Later in the tutorial we will cover extension
-    points that make references to action ids.</p>
-  
-  <li><p>The <code>&lt;action&gt;</code> element can also be embeded inside the
-    <code>&lt;project-facet-version&gt;</code> element. In that case, the
-    <code>facet</code> and <code>version</code> attributes should be omitted.
-    Note that if the same delegate implementation applies to multiple facet 
-    versions, it is better to provide a single action declaration externally.
-    This allows the framework to perform certain kinds of optimizations</p></li>
-    
-  <li><p>For the <code>VERSION_CHANGE</code> action, it is possible to restrict
-    the applicability of the action definition with regards to the starting
-    version. To do that, simply specify "from.versions" property in the action
-    definition. The value is a <a href="#version.expressions">version expression</a>.
-    If this property is not specified, the framework will assume that the delegate
-    is capable of converting from any starting version.</p></li>
-    
-</ul>
-
-<div class="code">
-<pre class="java-code"><span class="java-keyword">package</span> org.eclipse.wst.common.project.facet.core;
-
-<span class="java-keyword">import</span> org.eclipse.core.resources.IProject;
-<span class="java-keyword">import</span> org.eclipse.core.runtime.CoreException;
-<span class="java-keyword">import</span> org.eclipse.core.runtime.IProgressMonitor;
-
-<span class="java-comment">/**
- * This interface is implemented in order to provide logic associated with
- * a particular event in project facet's life cycle, such as install or 
- * uninstall.
- */</span>
-
-<span class="java-keyword">public interface</span> IDelegate 
-{
-    <span class="java-comment">/**
-     * The method that's called to execute the delegate.
-     * 
-     * <span class="java-javadoc-keyword">@param</span> project the workspace project
-     * <span class="java-javadoc-keyword">@param</span> fv the project facet version that this delegate is handling; this
-     *   is useful when sharing the delegate among several versions of the same
-     *   project facet or even different project facets
-     * <span class="java-javadoc-keyword">@param</span> config the configuration object, or <code>null</code> if defaults
-     *   should be used
-     * <span class="java-javadoc-keyword">@param</span> monitor the progress monitor
-     * <span class="java-javadoc-keyword">@throws</span> CoreException if the delegate fails for any reason
-     */</span>
-    
-    <span class="java-keyword">void</span> execute( IProject project,
-                  IProjectFacetVersion fv,
-                  Object config,
-                  IProgressMonitor monitor )
-    
-        <span class="java-keyword">throws</span> CoreException;
-}
-</pre>
-</div>
-
-<p>Let's now dive in and implement the install delegates for the FormGen facets.
-The <code>formgen.core</code> facet should (a) copy <code>formgen-core.jar</code>
-into the project's <code>WEB-INF/lib</code> directory, and (b) register the
-FormGen servlet in <code>web.xml</code>. The <code>formgen.ext</code> facet should
-copy the <code>formgen-ext.jar</code> into the project's <code>WEB-INF/lib</code>
-directory.</p>
-
-<div class="code">
-<pre class="code-xml"><span class="context-code">&lt;extension point="org.eclipse.wst.common.project.facet.core.facets"&gt;</span>
-
-  <span class="context-code">&lt;project-facet-version facet="formgen.core" version="1.0"&gt;</span>
-    &lt;action type="<span class="xml-text">INSTALL</span>"&gt;
-      &lt;delegate class="<span class="xml-text">com.formgen.eclipse.FormGenCoreFacetInstallDelegate</span>"/&gt;
-    &lt;/action&gt;
-  <span class="context-code">&lt;/project-facet-version&gt;</span>
-
-  <span class="context-code">&lt;project-facet-version facet="formgen.ext" version="1.0"&gt;</span>
-    &lt;action type="<span class="xml-text">INSTALL</span>"&gt;
-      &lt;delegate class="<span class="xml-text">com.formgen.eclipse.FormGenExtFacetInstallDelegate</span>"/&gt;
-    &lt;/action&gt;
-  <span class="context-code">&lt;/project-facet-version&gt;</span>
-  
-<span class="context-code">&lt;/extension&gt;</span>
-</pre>
-</div>
-
-<div class="code">
-<pre class="java-code"><span class="java-keyword">package</span> com.formgen.eclipse;
-
-<span class="java-keyword">import</span> org.eclipse.core.resources.IFolder;
-<span class="java-keyword">import</span> org.eclipse.core.resources.IProject;
-<span class="java-keyword">import</span> org.eclipse.core.runtime.CoreException;
-<span class="java-keyword">import</span> org.eclipse.core.runtime.IProgressMonitor;
-<span class="java-keyword">import</span> org.eclipse.core.runtime.Path;
-<span class="java-keyword">import</span> org.eclipse.wst.common.project.facet.core.IDelegate;
-<span class="java-keyword">import</span> org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-<span class="java-keyword">public final class</span> FormGenCoreFacetInstallDelegate <span class="java-keyword">implements</span> IDelegate
-{
-    <span class="java-keyword">public void</span> execute( <span class="java-keyword">final</span> IProject pj,
-                         <span class="java-keyword">final</span> IProjectFacetVersion fv,
-                         <span class="java-keyword">final</span> Object config,
-                         <span class="java-keyword">final</span> IProgressMonitor monitor )
-
-        <span class="java-keyword">throws</span> CoreException
-
-    {
-        monitor.beginTask( "", 2 );
-
-        <span class="java-keyword">try</span>
-        {
-            <span class="java-keyword">final</span> IFolder webInfLib = Utils.getWebInfLibDir( pj );
-
-            Utils.copyFromPlugin( new Path( "libs/formgen-core.jar" ),
-                                  webInfLib.getFile( "formgen-core.jar" ) );
-
-            monitor.worked( 1 );
-
-            Utils.registerFormGenServlet( pj );
-
-            monitor.worked( 1 );
-        }
-        <span class="java-keyword">finally</span>
-        {
-            monitor.done();
-        }
-    }
-}
-</pre>
-</div>
-
-<div class="code">
-<pre class="java-code"><span class="java-keyword">package</span> com.formgen.eclipse;
-
-<span class="java-keyword">import</span> org.eclipse.core.resources.IFolder;
-<span class="java-keyword">import</span> org.eclipse.core.resources.IProject;
-<span class="java-keyword">import</span> org.eclipse.core.runtime.CoreException;
-<span class="java-keyword">import</span> org.eclipse.core.runtime.IProgressMonitor;
-<span class="java-keyword">import</span> org.eclipse.core.runtime.Path;
-<span class="java-keyword">import</span> org.eclipse.wst.common.project.facet.core.IDelegate;
-<span class="java-keyword">import</span> org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-<span class="java-keyword">public final class</span> FormGenExtFacetInstallDelegate <span class="java-keyword">implements</span> IDelegate
-{
-    <span class="java-keyword">public void</span> execute( <span class="java-keyword">final</span> IProject pj,
-                         <span class="java-keyword">final</span> IProjectFacetVersion fv,
-                         <span class="java-keyword">final</span> Object config,
-                         <span class="java-keyword">final</span> IProgressMonitor monitor )
-
-        <span class="java-keyword">throws</span> CoreException
-
-    {
-        monitor.beginTask( "", 1 );
-
-        <span class="java-keyword">try</span>
-        {
-            <span class="java-keyword">final</span> IFolder webInfLib = Utils.getWebInfLibDir( pj );
-
-            Utils.copyFromPlugin( new Path( "libs/formgen-ext.jar" ),
-                                  webInfLib.getFile( "formgen-ext.jar" ) );
-
-            monitor.worked( 1 );
-        }
-        <span class="java-keyword">finally</span>
-        {
-            monitor.done();
-        }
-
-    }
-}
-</pre>
-</div>
-
-<p>Once the install actions have been implemented, you should be able to select
-the FormGen facets on the Facets Selection Page of the Dynamic Web Project Wizard
-without getting any error messages. You should also be able to complete the
-project creation and see the following highlighted artifacts in the new project.
-These artifacts have been created by the FormGen facet install delegates.</p>
-
-<div class="screen-shot"><img src="images/screen03.gif"/></div>
-
-<h2><a name="creating.categories">5. Creating Categories</a></h2>
-
-<p>Project facets can be grouped into categories in order to provide the "one
-click" exprience for novice users and retain the fine-grained control for advanced 
-users. You are told that most of FormGen users always add both of the jars to
-their web apps. These users would benefit from having the FormGen facets grouped
-into a category and so we will do just that.</p>
-
-<p>Here is what that part of the extension point schema looks like:</p>
-
-<div class="code">
-<pre class="code-xml"><span class="context-code">&lt;extension point="org.eclipse.wst.common.project.facet.core.facets"&gt;</span>
-  &lt;category id="<span class="schema-type">{string}</span>"&gt;
-    &lt;label&gt;<span class="schema-type">{string}</span>&lt;/label&gt;
-    &lt;description&gt;<span class="schema-type">{string}</span>&lt;/description&gt; <span class="schema-control">(optional)</span>
-  &lt;/category&gt;
-  <span class="context-code">&lt;project-facet&gt;</span>
-    &lt;category&gt;<span class="schema-type">{string}</span>&lt;/category&gt; <span class="schema-control">(optional)</span>
-  <span class="context-code">&lt;/project-facet&gt;</span>
-<span class="context-code">&lt;/extension&gt;</span>
-</pre>
-</div>
-
-<p>We can now create a category around the FormGen facets.</p>
-
-<div class="code">
-<pre class="code-xml"><span class="context-code">&lt;extension point="org.eclipse.wst.common.project.facet.core.facets"&gt;</span>
-
-  &lt;category id="<span class="schema-type">formgen.category</span>"&gt;
-    &lt;label&gt;<span class="schema-type">FormGen</span>&lt;/label&gt;
-    &lt;description&gt;<span class="schema-type">Enables generation of HTML forms based on XML definition files.</span>&lt;/description&gt;
-  &lt;/category&gt;
-
-  <span class="context-code">&lt;project-facet id="formgen.core"&gt;</span>
-    &lt;category&gt;<span class="schema-type">formgen.category</span>&lt;/category&gt;
-  <span class="context-code">&lt;/project-facet&gt;</span>
-
-  <span class="context-code">&lt;project-facet id="formgen.ext"&gt;</span>
-    &lt;category&gt;<span class="schema-type">formgen.category</span>&lt;/category&gt;
-  <span class="context-code">&lt;/project-facet&gt;</span>
-
-<span class="context-code">&lt;/extension&gt;</span>
-</pre>
-</div>
-
-<p>Once the above change has been put in place, the facets selection page should 
-look like this:</p>
-
-<div class="screen-shot"><img src="images/screen04.gif"/></div>
-
-<h2><a name="decorating">6. Decorating</a></h2>
-
-<p>Custom icons can be provided for facets and categories. If an icon is not
-provided, a default icon is used. The icons are helpful as a way to better
-differentiate facets and to make them stand out.</p>
-
-<p>Here is what that extension point looks like:</p>
-
-<div class="code">
-<pre class="code-xml">&lt;extension point="org.eclipse.wst.common.project.facet.ui.images"&gt;
-  &lt;image facet="<span class="schema-type">{string}</span>" path="<span class="schema-type">{string}</span>"/&gt; <span class="schema-control">(0 or more)</span>
-  &lt;image category="<span class="schema-type">{string}</span>" path="<span class="schema-type">{string}</span>"/&gt; <span class="schema-control">(0 or more)</span>
-&lt;/extension&gt;
-</pre>
-</div>
-
-<p>Your starter project came with three icons in the <code>icons</code> folder.
-We will now associate them with the FormGen facets and the category.</p>
-
-<div class="code">
-<pre class="code-xml">&lt;extension point="<span class="xml-text">org.eclipse.wst.common.project.facet.ui.images</span>"&gt;
-  &lt;image facet="<span class="xml-text">formgen.core</span>" path="<span class="xml-text">icons/formgen-core.gif</span>"/&gt;
-  &lt;image facet="<span class="xml-text">formgen.ext</span>" path="<span class="xml-text">icons/formgen-ext.gif</span>"/&gt;
-  &lt;image category="<span class="xml-text">formgen.category</span>" path="<span class="xml-text">icons/formgen-cat.gif</span>"/&gt;
-&lt;/extension&gt;
-</pre>
-</div>
-
-<p>Once the above snippet has been added to your plugin.xml file, the facets
-selection page should look like this:</p>
-
-<div class="screen-shot"><img src="images/screen05.gif"/></div>
-
-<h2><a name="adding.wizard.pages">7. Adding Wizard Pages</a></h2>
-
-<p>It is often desirable to gather user input prior to installing a facet.
-The framework allows a sequence of wizard pages to be associated with facet
-actions. The supplied wizard pages are shown after the facets selection
-page. Based on user feedback, you known that FormGen users often customize
-the URL pattern of the FormGen servlet so you would like to give them the ability
-to do that in the wizard when the FormGen facets are being installed.</p>
-
-<p>Here is what the relevant parts of the extension points look like:</p>
-
-<div class="code">
-<pre class="code-xml"><span class="context-code">&lt;extension point="org.eclipse.wst.common.project.facet.core.facets"&gt;
-  &lt;action&gt;</span>
-    &lt;config-factory class="<span class="schema-type">class:org.eclipse.wst.common.project.facet.core.IActionConfigFactory</span>"/&gt;
-  <span class="context-code">&lt;/action&gt;
-&lt;/extension&gt;</span>
-
-&lt;extension point="<span class="xml-text">org.eclipse.wst.common.project.facet.ui.wizardPages</span>"&gt;
-  &lt;wizard-pages action="<span class="schema-type">{string}</span>"&gt; <span class="schema-control">(0 or more)</span>
-    &lt;page class="<span class="schema-type">{class:org.eclipse.wst.common.project.facet.ui.IFacetWizardPage}</span>"/> <span class="schema-control">(1 or more)</span>
-  &lt;/wizard-pages&gt;
-&lt;/extension&gt;  
-</pre>
-</div>
-
-<p>One thing to note here is that in order to enable communication between the
-facet action delegate and the wizard pages, we go back to the action declaration
-and provide an action config factory. The object created by the factory is 
-populated by the wizard pages and is read by the action delegate. No restrictions
-are placed on the shape of the config object. You may choose to implement a custom
-class or you can use a something generic like <code>java.util.HashMap</code>.</p>
-
-<p>Another thing to note is that the <code>wizardPages</code> extension point refers
-to the actions by their ids, so it becomes more important to explicitly specify
-the id rather than letting the framework automatically generate one.</p>
-
-<p>Here are the interfaces that are used in the above extension point schema:</p> 
-
-<div class="code">
-<pre class="java-code"><span class="java-keyword">package</span> org.eclipse.wst.common.project.facet.core;
-
-<span class="java-keyword">import</span> org.eclipse.core.runtime.CoreException;
-
-<span class="java-comment">/**
- * This interface is implemented in order to provide a method for creating 
- * a config object that will be used for parameterizing the facet action
- * delegate.
- */</span>
-
-<span class="java-keyword">public interface</span> IActionConfigFactory
-{
-    <span class="java-comment">/**
-     * Creates a new facet action configuration object. The new configuration
-     * object should ideally be populated with reasonable defaults.
-     * 
-     * <span class="java-javadoc-keyword">@return</span> a new facet action configuration object
-     * <span class="java-javadoc-keyword">@throws</span> CoreException if failed while creating the configuration object
-     */</span>
-    
-    Object create() <span class="java-keyword">throws</span> CoreException;
-}
-</pre>
-</div>
-
-<div class="code">
-<pre class="java-code"><span class="java-keyword">package</span> org.eclipse.wst.common.project.facet.ui;
-
-<span class="java-keyword">import</span> org.eclipse.jface.wizard.IWizardPage;
-
-<span class="java-comment">/**
- * This interface is implemented by the wizard pages associated with project
- * facet actions.
- */</span>
-
-<span class="java-keyword">public interface</span> IFacetWizardPage <span class="java-keyword">extends</span> IWizardPage
-{
-    <span class="java-comment">/**
-     * The framework will call this method in order to provide the wizard
-     * context to the wizard page. The wizard context can be used to find out
-     * about other actions being configured by the wizard.
-     * 
-     * <span class="java-javadoc-keyword">@param</span> context the wizard context
-     */</span>
-    
-    <span class="java-keyword">void</span> setWizardContext( IWizardContext context );
-    
-    <span class="java-comment">/**
-     * The framework will call this method in order to provide the action config
-     * object that the wizard page should save user selection into. The
-     * populated config object will then be passed to the action delegate.
-     * 
-     * <span class="java-javadoc-keyword">@param</span> config the action config object
-     */</span>
-    
-    <span class="java-keyword">void</span> setConfig( Object config );
-    
-    <span class="java-comment">/**
-     * This method is called after the user has pressed the <code>Finish</code>
-     * button. It allows the wizard page to transfer user selection into the
-     * config object. Alternative, instead of using this method, the wizard
-     * page could update the model on the fly as the user is making changes.
-     */</span>
-
-    <span class="java-keyword">void</span> transferStateToConfig();
-}
-</pre>
-</div>
-
-<p>We will now implement a wizard page for the <code>facet.core</code> facet
-install action. The wizard page will allow the user to change the default
-servlet URL pattern for the FormGen servlet.</p>
-
-<div class="code">
-<pre class="code-xml"><span class="context-code">&lt;extension point="org.eclipse.wst.common.project.facet.core.facets"&gt;
-  &lt;project-facet-version facet="formgen.core" version="1.0"&gt;
-    &lt;action type="INSTALL"</span> id="<span class="xml-text">formgen.core.install</span>"<span class="context-code">&gt;</span>
-      &lt;config-factory class="<span class="xml-text">com.formgen.eclipse.FormGenCoreFacetInstallConfig$Factory</span>"/&gt;
-    <span class="context-code">&lt;/action&gt;
-  &lt;/project-facet-version&gt;
-&lt;/extension&gt;</span>
-
-&lt;extension point="<span class="xml-text">org.eclipse.wst.common.project.facet.ui.wizardPages</span>"&gt;
-  &lt;wizard-pages action="<span class="xml-text">formgen.core.install</span>"&gt;
-    &lt;page class="<span class="schema-type">com.formgen.eclipse.FormGenCoreFacetInstallPage</span>"/>
-  &lt;/wizard-pages&gt;
-&lt;/extension&gt;  
-</pre>
-</div>
-
-<div class="code">
-<pre class="java-code"><span class="java-keyword">package</span> com.formgen.eclipse;
-
-<span class="java-keyword">import</span> org.eclipse.wst.common.project.facet.core.IActionConfigFactory;
-
-<span class="java-keyword">public final class</span> FormGenCoreFacetInstallConfig
-{
-    <span class="java-keyword">private</span> String urlPattern = <span class="java-literal">"*.form"</span>;
-
-    <span class="java-keyword">public</span> String getUrlPattern()
-    {
-        <span class="java-keyword">return this</span>.urlPattern;
-    }
-
-    <span class="java-keyword">public void</span> setUrlPattern( <span class="java-keyword">final</span> String urlPattern )
-    {
-        <span class="java-keyword">this</span>.urlPattern = urlPattern;
-    }
-
-    <span class="java-keyword">public static final class</span> Factory <span class="java-keyword">implements</span> IActionConfigFactory
-    {
-        <span class="java-keyword">public</span> Object create()
-        {
-            <span class="java-keyword">return new</span> FormGenCoreFacetInstallConfig();
-        }
-    }
-}
-</pre>
-</div>
-
-<div class="code">
-<pre class="java-code"><span class="java-keyword">package</span> com.formgen.eclipse;
-
-<span class="java-keyword">import</span> org.eclipse.swt.SWT;
-<span class="java-keyword">import</span> org.eclipse.swt.layout.GridData;
-<span class="java-keyword">import</span> org.eclipse.swt.layout.GridLayout;
-<span class="java-keyword">import</span> org.eclipse.swt.widgets.Composite;
-<span class="java-keyword">import</span> org.eclipse.swt.widgets.Label;
-<span class="java-keyword">import</span> org.eclipse.swt.widgets.Text;
-<span class="java-keyword">import</span> org.eclipse.wst.common.project.facet.ui.AbstractFacetWizardPage;
-
-<span class="java-keyword">public final class</span> FormGenCoreFacetInstallPage <span class="java-keyword">extends</span> AbstractFacetWizardPage
-{
-    <span class="java-keyword">private</span> FormGenCoreFacetInstallConfig config;
-    <span class="java-keyword">private</span> Text urlPatternTextField;
-
-    <span class="java-keyword">public</span> FormGenCoreFacetInstallPage()
-    {
-        <span class="java-keyword">super</span>( <span class="java-literal">"formgen.core.facet.install.page"</span> );
-
-        setTitle( <span class="java-literal">"FormGen Core"</span> );
-        setDescription( <span class="java-literal">"Configure the FormGen servlet."</span> );
-    }
-
-    <span class="java-keyword">public void</span> createControl( <span class="java-keyword">final</span> Composite parent )
-    {
-        <span class="java-keyword">final</span> Composite composite = <span class="java-keyword">new</span> Composite( parent, SWT.NONE );
-        composite.setLayout( <span class="java-keyword">new</span> GridLayout( 1, <span class="java-keyword">false</span> ) );
-
-        <span class="java-keyword">final</span> Label label = <span class="java-keyword">new</span> Label( composite, SWT.NONE );
-        label.setLayoutData( gdhfill() );
-        label.setText( <span class="java-literal">"URL Pattern:"</span> );
-
-        <span class="java-keyword">this</span>.urlPatternTextField = <span class="java-keyword">new</span> Text( composite, SWT.BORDER );
-        <span class="java-keyword">this</span>.urlPatternTextField.setLayoutData( gdhfill() );
-        <span class="java-keyword">this</span>.urlPatternTextField.setText( this.config.getUrlPattern() );
-
-        setControl( composite );
-    }
-
-    <span class="java-keyword">public void</span> setConfig( <span class="java-keyword">final</span> Object config )
-    {
-        <span class="java-keyword">this</span>.config = (FormGenCoreFacetInstallConfig) config;
-    }
-
-    <span class="java-keyword">public void</span> transferStateToConfig()
-    {
-        <span class="java-keyword">this</span>.config.setUrlPattern( <span class="java-keyword">this</span>.urlPatternTextField.getText() );
-    }
-
-    <span class="java-keyword">private static</span> GridData gdhfill()
-    {
-        <span class="java-keyword">return new</span> GridData( GridData.FILL_HORIZONTAL );
-    }
-}
-</pre>
-</div>
-
-<div class="code">
-<pre class="java-code"><span class="java-context"><span class="java-context-keyword">package</span> com.formgen.eclipse;
-
-<span class="java-context-keyword">import</span> org.eclipse.core.resources.IFolder;
-<span class="java-context-keyword">import</span> org.eclipse.core.resources.IProject;
-<span class="java-context-keyword">import</span> org.eclipse.core.runtime.CoreException;
-<span class="java-context-keyword">import</span> org.eclipse.core.runtime.IProgressMonitor;
-<span class="java-context-keyword">import</span> org.eclipse.core.runtime.Path;
-<span class="java-context-keyword">import</span> org.eclipse.wst.common.project.facet.core.IDelegate;
-<span class="java-context-keyword">import</span> org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-<span class="java-context-keyword">public final class</span> FormGenCoreFacetInstallDelegate <span class="java-context-keyword">implements</span> IDelegate
-{
-    <span class="java-context-keyword">public void</span> execute( <span class="java-context-keyword">final</span> IProject pj,
-                         <span class="java-context-keyword">final</span> IProjectFacetVersion fv,
-                         <span class="java-context-keyword">final</span> Object config,
-                         <span class="java-context-keyword">final</span> IProgressMonitor monitor )
-
-        <span class="java-context-keyword">throws</span> CoreException
-
-    {
-        monitor.beginTask( "", 2 );
-
-        try
-        {</span>
-            <span class="java-keyword">final</span> FormGenCoreFacetInstallConfig cfg
-                = (FormGenCoreFacetInstallConfig) config;
-
-            <span class="java-context"><span class="java-context-keyword">final</span> IFolder webInfLib = Utils.getWebInfLibDir( pj );
-
-            Utils.copyFromPlugin( <span class="java-context-keyword">new</span> Path( "libs/formgen-core.jar" ),
-                                  webInfLib.getFile( "formgen-core.jar" ) );
-
-            monitor.worked( 1 );</span>
-
-            Utils.registerFormGenServlet( pj, cfg.getUrlPattern() );
-
-            <span class="java-context">monitor.worked( 1 );
-        }
-        <span class="java-context-keyword">finally</span>
-        {
-            monitor.done();
-        }
-    }
-}</span>
-</pre>
-</div>
-
-<p>Once the above code changes have been made you should see another page appear
-in the Dynamic Web Project Wizard after the FormGen facets are selected. The
-new page will appear after the Web Module page, which is associated with the
-<code>jst.web</code> facet. That's because <code>formgen.core</code> facet
-depends on the <code>jst.web</code> facet. If this dependency relationship 
-was not specified the relative order of these pages would be unspecified.</p>
-
-<div class="screen-shot"><img src="images/screen06.gif"/></div>
-
-<h2><a name="defining.presets">8. Defining Presets</a></h2>
-
-<p>As the number of available facets grows, it becomes increasingly difficult
-for the user to figure out which combinations make sense. This is where presets
-come in. Presets (or Configurations, as they are referred to in the UI) are
-simply combinations of facets that someone has determined are useful in certain
-situations. Presets can be created by the user or supplied via an extension
-point.</p>
-
-<p>Here is the extension point schema for declaring presets:</p>
-
-<div class="code">
-<pre class="code-xml">&lt;extension point="<span class="xml-text">org.eclipse.wst.common.project.facet.core.presets</span>"&gt;
-  &lt;static-preset id="<span class="schema-type">{string}</span>" extends="<span class="schema-type">{string}</span>"&gt;
-    &lt;label&gt;<span class="schema-type">{string}</span>&lt;/label&gt;
-    &lt;description&gt;<span class="schema-type">{string}</span>&lt;/description&gt; <span class="schema-control">(optional)</span>
-    &lt;facet id="<span class="schema-type">{string}</span>" version="<span class="schema-type">{string}</span>"/&gt; <span class="schema-control">(1 or more)</span>
-  &lt;/static-preset&gt;
-&lt;/extension&gt;
-</pre>
-</div>
-
-<p>Note that in order for a preset to apply to a given faceted project, the
-preset needs to include all of the project's "fixed facets". Fixed facets are
-the facets that are key to the proper operation of that project type and so
-cannot be removed. You can identify fixed facets by the lock icon.</p>
-
-<p>Let's now create a preset that includes formgen facets.</p>
-
-<div class="code">
-<pre class="code-xml">&lt;extension point="<span class="xml-text">org.eclipse.wst.common.project.facet.core.presets</span>"&gt;
-  &lt;static-preset id="<span class="xml-text">formgen.preset</span>"&gt;
-    &lt;label&gt;<span class="xml-text">FormGen Web Project</span>&lt;/label&gt;
-    &lt;description&gt;<span class="xml-text">Creates a web project with FormGen functionality.</span>&lt;/description&gt;
-    &lt;facet id="<span class="xml-text">jst.java</span>" version="<span class="xml-text">5.0</span>"/&gt;
-    &lt;facet id="<span class="xml-text">jst.web</span>" version="<span class="xml-text">2.2</span>"/&gt;
-    &lt;facet id="<span class="xml-text">formgen.core</span>" version="<span class="xml-text">1.0</span>"/&gt;
-    &lt;facet id="<span class="xml-text">formgen.ext</span>" version="<span class="xml-text">1.0</span>"/&gt;
-  &lt;/static-preset&gt;
-&lt;/extension&gt;
-</pre>
-</div>
-
-<p>Here is how the preset shows up on the facets selection page:</p>
-
-<div class="screen-shot"><img src="images/screen07.gif"/></div>
-
-<p>The preset can also be selected on the first page of all WTP project
-creation wizards. Here is how this looks in the Dynamic Web Project wizard:</p>
-
-<div class="screen-shot"><img src="images/screen08.gif"/></div>
-
-<h2><a name="runtime.mappings">9. Specifying Runtime Support Mappings</a></h2>
-
-<p>One of the most important functions of the faceted project framework is to
-be able to accurately model whether a certain server runtime supports a
-given project. We do that by "mapping" project facets to runtime components
-that support them. If the artifacts created by a facet will run on any server
-that supports all of the facet's upstream dependencies, then the <code>any</code>
-wildcard can be used.</p>
-
-<p>It's important to note that every facet needs to specify a support mapping of
-some kind. Facets that don't specify any support mappings are treated as not
-supported by any runtime, which is not very useful.</p>
-
-<p>Here is the extension point that's used for specifying the support mappings:</p>
-
-<div class="code">
-<pre class="code-xml">&lt;extension point="<span class="xml-text">org.eclipse.wst.common.project.facet.core.runtimes</span>"&gt;
-  &lt;supported&gt; <span class="schema-control">(0 or more)</span>
-    &lt;runtime-component any="<span class="schema-type">{boolean}</span>"/&gt; <span class="schema-control">(optional)</span>
-    &lt;runtime-component id="<span class="schema-type">{string}</span>"/ version="<span class="schema-type"><span class="schema-type-link">{<a href="#version.expressions">version.expr</a>}</span></span>"/&gt; <span class="schema-control">(0 or more)</span>
-    &lt;facet id="<span class="schema-type">{string}</span>"/ version="<span class="schema-type"><span class="schema-type-link">{<a href="#version.expressions">version.expr</a>}</span></span>"/&gt; <span class="schema-control">(1 or more)</span>
-  &lt;/supported&gt;
-&lt;/extension&gt;
-</pre>
-</div>
-
-<p>The <code>&lt;supported&gt;</code> block can reference any number of runtime
-components as well as any number of facets. The semantics of that is to declare 
-as supported every combination in the resulting cross-product.</p> 
-
-<p>The <code>version</code> attributes of the <code>&lt;runtime-component&gt;</code> 
-and <code>&lt;facet&gt;</code> elements can be omitted to include all versions.</p>
-
-<p>The FormGen facets don't have any special support requirements. They will run
-on any server that supports the j2ee servlet spec. We will use the <code>any</code>
-wildcard to designate that.</p>
-
-<div class="code">
-<pre class="code-xml">&lt;extension point="<span class="xml-text">org.eclipse.wst.common.project.facet.core.runtimes</span>"&gt;
-  &lt;supported&gt;
-    &lt;runtime-component any="<span class="xml-text">true</span>"/&gt;
-    &lt;facet id="<span class="xml-text">formgen.core</span>"/&gt;
-    &lt;facet id="<span class="xml-text">formgen.ext</span>"/&gt;
-  &lt;/supported&gt;
-&lt;/extension&gt;
-</pre>
-</div>
-
-<p>Alternative, if for some reason the FormGen functionality required a specific
-runtime, such as Tomcat, we would use something like the this instead:</p>
-
-<div class="code">
-<pre class="code-xml">&lt;extension point="<span class="xml-text">org.eclipse.wst.common.project.facet.core.runtimes</span>"&gt;
-  &lt;supported&gt;
-    &lt;runtime-component id="<span class="xml-text">org.eclipse.jst.server.tomcat</span>" version="<span class="xml-text">[5.0</span>"/&gt;
-    &lt;facet id="<span class="xml-text">formgen.core</span>"/&gt;
-    &lt;facet id="<span class="xml-text">formgen.ext</span>"/&gt;
-  &lt;/supported&gt;
-&lt;/extension&gt;
-</pre>
-</div>
-
-<p>The above more restrictive specification will prevent FormGen facets from
-being selected if the project is targetted to any runtime other than Apache
-Tomcat 5.0 or newer.</p>
-
-<h2><a name="summary">10. Summary</a></h2>
-
-<p>In this tutorial we created two fully-functional project facets by specifying
-constraints, implementing actions, grouping facets into categories, and creating
-wizard pages to allow users to parameterize facet installation. You should now
-be well prepared to create your own facets. Additional information not covered
-by this tutorial can be found in the following appendix sections.</p> 
-
-<h2><a name="custom.version.comparators">Appendix A: Custom Version Comparators</a></h2>
-
-<p>The faceted project framework needs to be able to compare facet version
-strings. The framework supplies a default version comparator that can handle
-version strings encoded using the standard decimal notation (such as 1.2 or
-5.66.5533), but if you want to use a different format you will need to supply
-a custom version comparator.</p>
-
-<p>Here is how you plug in a custom version comparator:</p>
-
-<div class="code">
-<pre class="code-xml"><span class="context-code">&lt;extension point="org.eclipse.wst.common.project.facet.core.facets"&gt;
-  &lt;project-facet&gt;</span>
-    &lt;version-comparator class="<span class="schema-type">{class:java.util.Comparator&lt;String&gt;}</span>"/&gt;
-  <span class="context-code">&lt;/project-facet&gt;
-&lt;/extension&gt;</span>
-</pre>
-</div>
-
-<p>When implementing a version comparator you can either start from scratch
-or subclass the default version comparator (<code>org.eclipse.wst.common.project.facet.core.DefaultVersionComparator</code>).
-Subclassing the default version comparator makes sense if the version format
-differs only slightly from the default format, such as using separators other
-than dots or having non-numeric characters at certain positions. Here are the
-protected methods exposed by the <code>DefaultVersionComparator</code> class
-that are designed to be overridden:</p>
-
-<div class="code">
-<pre class="java-code"><span class="java-comment">/**
- * Returns the string containing the separator characters that should be
- * used when breaking the version string into segments. The default
- * implementation returns ".". Subclasses can override this method.
- * 
- * <span class="java-javadoc-keyword">@return</span> the separator characters
- */</span>
-    
-<span class="java-keyword">protected</span> String getSeparators();
-    
-<span class="java-comment">/**
- * Parses a segment of the version string. The default implementation parses
- * the first segment as an integer (leading zeroes are ignored) and the
- * rest of the segments as decimals (leading zeroes are kept). Subclasses 
- * can override this method to provide custom parsing for any number of 
- * segments.
- * 
- * <span class="java-javadoc-keyword">@param</span> version the full version string
- * <span class="java-javadoc-keyword">@param</span> segment the version segment
- * <span class="java-javadoc-keyword">@param</span> position the position of the segment in the version string
- * <span class="java-javadoc-keyword">@return</span> the parsed representation of the segment as a {@see Comparable}
- * <span class="java-javadoc-keyword">@throws</span> VersionFormatException if encountered an error while parsing
- */</span>
-    
-<span class="java-keyword">protected</span> Comparable parse( <span class="java-keyword">final</span> String version,
-                            <span class="java-keyword">final</span> String segment,
-                            <span class="java-keyword">final</span> int position )
-    
-    <span class="java-keyword">throws</span> VersionFormatException;
-</pre>
-</div>
-
-<h2><a name="version.expressions">Appendix B: Version Expressions</a></h2>
-
-<p>A version expression is a syntax for specifying more than one version. The
-version expressions are used throughout the framework's extension points, but
-you will most likely first encounter them while specifying the <code>requires</code> 
-constraint.</p>
-
-<p>A version expression is composed of multiple segments separated by commas. 
-The commas function as an OR operation. Each segment is either a single version, 
-a range, or a wildcard. Ranges are represented by bracket and dash notation such 
-as [x-y). A bracket means inclusive, while the parenthesis means exclusive. Open 
-ended ranges are also supported. A wildcard (represented by '*' character) can
-be used to match any version. It is not possible to use the wildcard to match
-part of the version string.</p>
-
-<p>Here are some examples:</p>
-
-<div class="code">
-<pre class="java-code">1.2
-1.2,1.5,3.2
-[1.2-3.2]
-[3.7-5.0)
-[3.7
-5.0)
-1.2,[3.0-4.5),[7.3
-*
-</pre>
-</div>
-
-<h2><a name="property.tester">Appendix C: Property Tester</a></h2>
-
-<p>A property tester is provided by the Faceted Project Framework that allows
-the presence of the facet in a project to be tested by any extension point that
-works with <code>org.eclipse.core.expressions</code> package. The most common
-usage is to enable user interface elements (such as actions and project property
-pages). The property name is <code>org.eclipse.wst.common.project.facet.core.projectFacet</code>
-and the value is either a facet id or a facet id followed by a colon and
-a <a href="#version.expressions">version expression</a>.</p>
-
-<p>Here is an example of using facets property tester to control enablement of
-a project properties page:</p>
-
-<div class="code">
-<pre class="code-xml">&lt;extension point="<span class="xml-text">org.eclipse.ui.propertyPages</span>"&gt;
-  &lt;page 
-    adaptable="<span class="xml-text">true</span>"
-    objectClass="<span class="xml-text">org.eclipse.core.resources.IProject</span>"
-    name="<span class="xml-text">FormGen Properties</span>"
-    class="<span class="xml-text">com.formgen.eclipse.FormGenPropertiesPage</span>"
-    id="<span class="xml-text">org.eclipse.jst.j2ee.internal.J2EEDependenciesPage</span>"&gt;
-    &lt;enabledWhen&gt;
-      &lt;test 
-        forcePluginActivation="<span class="xml-text">true</span>"
-        property="<span class="xml-text">org.eclipse.wst.common.project.facet.core.projectFacet</span>"
-        value="<span class="xml-text">formgen.core</span>"/&gt;
-    &lt;/enabledWhen&gt;          
-  &lt;/page&gt;
-&lt;/extension&gt;
-</pre>
-</div>
-
-<h2><a name="wizard.context">Appendix D: Wizard Context</a></h2>
-
-<p>Sometimes it desirable to be able to adjust the behavior of facet action 
-wizard pages based on user input in the wizard pages of other facets. The
-<code>IWizardContext</code> interface can be used for this purpose. The wizard
-page gets a handle on <code>IWizardContext</code> interface when it's
-<code>setWizardContext</code> method is called. When writing code that relies
-on the wizard context, there are a couple of points you should keep in mind.</p>
-
-<ol>
-
-  <li><p>The facet whose value you wish to check may have already been installed
-    in the past. In that case you will not find it's install configuration in
-    the wizard context. You will need to write conditional logic that will
-    consult the wizard context or looks at project state on disk.</p></li>
-    
-  <li><p>You should make sure that a reasonable default is provided in your
-    config object for the API-only scenario where your wizard page will not be
-    involved.</p>
-    
-</ol>
-
-<p>Here is what the <code>IWizardContext</code> interface looks like:</p>
-
-<div class="code">
-<pre class="java-code"><span class="java-keyword">package</span> org.eclipse.wst.common.project.facet.ui;
-
-<span class="java-keyword">import</span> java.util.Set;
-
-<span class="java-keyword">import</span> org.eclipse.core.runtime.CoreException;
-<span class="java-keyword">import</span> org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-<span class="java-keyword">import</span> org.eclipse.wst.common.project.facet.core.IFacetedProject.Action;
-<span class="java-keyword">import</span> org.eclipse.wst.common.project.facet.core.IFacetedProject.Action.Type;
-
-<span class="java-comment">/**
- * The interface exposed to the facet action wizard pages that allows them
- * to gather information about the wizard state.
- */</span>
-
-<span class="java-keyword">public interface</span> IWizardContext 
-{
-    <span class="java-comment">/**
-     * Returns the name of the project that the wizard is operating on. If the
-     * wizard is in the project creation mode, the project will not yet exist
-     * in the workspace.
-     * 
-     * <span class="java-javadoc-keyword">@return</span> the name of the project that the wizard is operating on
-     */</span>
-    
-    String getProjectName();
-    
-    <span class="java-comment">/**
-     * Returns the set of facets currently selected in the wizard. If the wizard
-     * is in the add/remove facets mode (vs. project creation), this method will 
-     * return the set of facets currently installed in a project after being 
-     * modified by the current set of actions. 
-     * 
-     * <span class="java-javadoc-keyword">@return</span> the set of facets currently selected in the wizard (element type:
-     *   {<span class="java-javadoc-keyword">@see</span> IProjectFacetVersion})
-     */</span>
-    
-    Set getSelectedProjectFacets();
-    
-    <span class="java-comment">/**
-     * Determines whether the specified facet is currently selected in the
-     * wizard. See {@see getSelectedProjectFacets()} for more information.
-     * 
-     * <span class="java-javadoc-keyword">@param</span> fv the project facet version object
-     * <span class="java-javadoc-keyword">@return</span> <code>true</code> if an only if the provided project facet is
-     *   currently selected in the wizard
-     */</span>
-    
-    <span class="java-keyword">boolean</span> isProjectFacetSelected( IProjectFacetVersion fv );
-    
-    <span class="java-comment">/**
-     * Returns the set of actions currently specified by the user.
-     * 
-     * <span class="java-javadoc-keyword">@return</span> the set of actions currently specified by the user
-     */</span>
-    
-    Set getActions();
-    
-    <span class="java-comment">/**
-     * Finds the action of specified type that applies to the specified facet,
-     * if such action exists. If the wizard is in the add/remove facets mode
-     * (vs. project creation), you cannot depend on finding the install action
-     * for a required facet as that facet may have already been installed.
-     * 
-     * <span class="java-javadoc-keyword">@param</span> type the action type
-     * <span class="java-javadoc-keyword">@param</span> fv the project facet version object
-     * <span class="java-javadoc-keyword">@return</span> the action object or <code>null</code>
-     */</span>
-    
-    Action getAction( Action.Type type,
-                      IProjectFacetVersion fv );
-}
-</pre>
-</div>
-
-<br/><br/><br/>
-
-</body>
-
-</html>
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/whatsnew150.html b/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/whatsnew150.html
deleted file mode 100644
index c354809..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/whatsnew150.html
+++ /dev/null
@@ -1,363 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<meta
-  http-equiv="Content-Type"
-  content="text/html; charset=iso-8859-1">
-<title>What's New for 1.5?</title>
-<link
-  rel="stylesheet"
-  type="text/css"
-  href="format.css">
-</head>
-
-<body>
-<p class="ueberschrift">What's New for 1.5?</p>
-
-<p>This document describes the API changes that have been made in the Faceted
-Project Framework for WTP 1.5 release. Both Java API and extension point changes 
-are covered. Note that the Faceted Project Framework API remains provisional
-for the 1.5 release. This means it will continue undergoing further significant
-changes in future release(s).</p>
-
-<p><b>Attention:</b> All Java API and extension points that have been deprecated 
-in the 1.5 release will be removed in the 2.0 release. Until that point they 
-will continue to function and be fully supported.</p>
-
-<ol>
-  <li><a href="#vexprs">Version Expressions</a></li>
-  <li><a href="#actions">Action Definitions</a></li>
-  <li><a href="#wizard">Wizard Pages</a></li>
-  <li><a href="#event.handlers">Event Handlers</a></li>
-  <li><a href="#runtimes">Targeting Multiple Runtimes</a></li>
-  <li><a href="#presets">Descriptions for Presets</a></li>
-  <li><a href="#misc">Miscellaneous</a></li>
-</ol>
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="vexprs">1. Version Expressions</a></font></p>
-<!--  ********************************************************************** -->
-
-<p>Version expressions are used in various context throughout the framework's
-extension points and Java API when multiple versions need to be specified. In
-the 1.0.x release, the vesion expressions were of the form "&lt;1.5,2.3,2.5,&gt=5.0",
-where commas indicate a disjunction (or). This syntax did not allow ranges to be
-specified and was unwieldy due to the need to escape the angle brackets in the
-plugin.xml files. So this syntax has been deprecated in the 1.5 release. The new
-syntax also uses commas to specify a disjunction, but now ranges can be
-specified using "[1.3-6.3)" notation. Square brackets mean inclusive, while
-parenthesis mean exclusive. Open ranges can also be specified using notation
-like "[1.3" and "6.3)".</p>
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="actions">2. Action Definitions</a></font></p>
-<!--  ********************************************************************** -->
-
-<p>Action definitions have been made into first class entities with the new
-ability to be assigned an id and the creation of the browsing API. In addition,
-it is now possible to create constrained VERSION_CHANGE actions in order to
-designate precisely which versions the delegate is capable of changing from.
-Multiple VERSION_CHANGE delegates with different "from.versions" constraint
-can be specified.</p>
-
-<p><u>Extension Point Changes</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-<font color="#7B7B7B">&lt;extension point="org.eclipse.wst.common.project.facet.core.facets"&gt;
-  ...
-  &lt;action</font> id="string" <font color="#7B7B7B">... &gt;
-    ...
-    </font>
-    &lt;property name="from.versions" value="string"/&gt; <i>(0 or 1)</i>
-    <font color="#7B7B7B">
-    ...
-  &lt/action&gt;
-  ...
-&lt;extension&gt;</font>
-</pre>
-</td></tr></table>
-
-<p><u>Java API Additions</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-org.eclipse.wst.common.project.facet.core.IActionDefinition
-{
-   static final String PROP_FROM_VERSIONS;
-   String getId();
-   IProjectFacet getProjectFacet();
-   IVersionExpr getVersionExpr();
-   Action.Type getActionType();
-   Map getProperties();
-   Object getProperty( String name );
-   Object createConfigObject( IProjectFacetVersion fv, String pjname );
-}
-
-<font color="#7B7B7B">org.eclipse.wst.common.project.facet.core.IProjectFacetVersion
-{
-   ...</font>
-   boolean supports( Set base, Action.Type type );
-   Set getActionDefinitions();
-   Set getActionDefinitions( Action.Type type );
-   IActionDefinition getActionDefinition( Set base, Action.Type type );
-   <font color="#7B7B7B">...
-}</font>
-
-<font color="#7B7B7B">org.eclipse.wst.common.project.facet.core.ProjectFacetsManager
-{
-    ...</font>
-    Set getActionDefinitions();
-    boolean isActionDefined( String id );
-    IActionDefinition getActionDefinition( String id );
-    <font color="#7B7B7B">...
-}</font>
-</pre>
-</td></tr></table>
-
-<p><u>Deprecated Java API</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor=#FFF1C1>
-<pre>
-<font color="#7B7B7B">org.eclipse.wst.common.project.facet.core.IProjectFacetVersion
-{
-   ...</font>
-   boolean supports( Action.Type type );
-   Object createActionConfig( Action.Type type, String pjname );
-   boolean isSameActionConfig( Action.Type type, IProjectFacetVersion fv );
-   <font color="#7B7B7B">...
-}</font>
-</pre>
-</td></tr></table>
-
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="wizard">3. Wizard Pages</a></font></p>
-<!--  ********************************************************************** -->
-
-<p>The extension point schema for defining wizard pages associated with the
-project facet actions has been revised to be more flexible.</p>
-
-<p><u>Deprecated Extension Point</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor=#FFF1C1>
-<pre>
-&lt;extension point="org.eclipse.wst.common.project.facet.ui.wizard"&gt;
-  &lt;wizard-pages facet="..."&gt;
-    &lt;install&gt; <i>(0 or 1)</i>
-      &lt;page class="..."/&gt; <i>(1 or more)</i>
-    &lt;/install&gt;
-    &lt;uninstall&gt; <i>(0 or 1)</i>
-      &lt;page class="..."/&gt; <i>(1 or more)</i>
-    &lt;/uninstall&gt;
-  &lt;/wizard-pages&gt;
-&lt;/extension&gt;
-</pre>
-</td></tr></table>
-
-<p><u>Replacement Extension Point</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-&lt;extension point="org.eclipse.wst.common.project.facet.ui.wizardPages"&gt;
-  &lt;wizard-pages action="..."&gt; <i>(1 or more)</i>
-    &lt;page class="..."/&gt; <i>(1 or more)</i>
-  &lt;/wizard-pages&gt;
-&lt;/extension&gt;
-</pre>
-</td></tr></table>
-
-<p>Note the new extension point id. The "action" attribute should contain the
-action that these pages are to be associated with. The action id can
-be explicitly specified via the new "id" attribute available on the "action"
-element of the core facets extension point. If not specified, the default id
-is generated using the "[facet-id]#[version-expression]#[action-type]" 
-pattern.</p>
-
-<p><u>Deprecated Java API</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#FFF1C1">
-<pre>
-<font color="#7B7B7B">org.eclipse.wst.common.project.facet.ui.ProjectFacetsUiManager
-{
-   ...</font>
-   List getWizardPages( Action.Type type, IProjectFacetVersion fv );
-   <font color="#7B7B7B">...
-}</font>
-</pre>
-</td></tr></table>
-
-<p><u>Replacement Java API</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-<font color="#7B7B7B">org.eclipse.wst.common.project.facet.ui.ProjectFacetsUiManager
-{
-   ...</font>
-   List getWizardPages( String actionId );
-   <font color="#7B7B7B">...
-}</font>
-</pre>
-</td></tr></table>
-
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="event.handlers">4. Event Handlers</a></font></p>
-<!--  ********************************************************************** -->
-
-<p>A new event handling facility has been added. This makes for a clear separation
-between actions (user initiated), and events (automatic). Prior to this change
-it was possible to register a "runtime-changed" action. That usage is now
-deprecated and should be converted to use event handler extension point. Various
-new events have also been added.</p>
-
-<p><u>Event Types</u></p>
-
-<p>PRE_INSTALL, POST_INSTALL, PRE_UNINSTALL, POST_UNINSTALL, PRE_VERSION_CHANGE,
-POST_VERSION_CHANGE, RUNTIME_CHANGED</p>
-
-<p><u>Extension Point Changes</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-<font color="#7B7B7B">&lt;extension point="org.eclipse.wst.common.project.facet.core.facets"&gt;
-  ...</font>
-  &lt;event-handler type="..." facet="..." version="..."&gt;
-    &lt;delegate class="..."/&gt;
-  &lt/event-handler&gt;
-  <font color="#7B7B7B">...
-&lt;extension&gt;</font>
-</pre>
-</td></tr></table>
-
-<p><u>RUNTIME_CHANGED Event</u></p>
-
-<p>In the 1.0.x release it was possible to register a "runtime-changed" action.
-That usage is now deprecated and should be converted into a RUNTIME_CHANGED
-event handler. The RUNTIME_CHANGED event handler delegate gets passed in a
-config object that carries additional information about the event.</p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-org.eclipse.wst.common.project.facet.core.IRuntimeChangedEvent
-{
-    IRuntime getOldRuntime();
-    IRuntime getNewRuntime();
-}  
-</pre>
-</td></tr></table>
-
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="runtimes">5. Targeting Multiple Runtimes</a></font></p>
-<!--  ********************************************************************** -->
-
-<p>The ability for a project to target multiple runtimes has been further
-fleshed out during the 1.5 release.</p>
-   
-<p><u>Deprecated Java API</u></p>
-   
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#FFF1C1">
-<pre>
-<font color="#7B7B7B">org.eclipse.wst.common.project.facet.core.IFacetedProject
-{
-   ...</font>
-   IRuntime getRuntime();
-   void setRuntime( IRuntime runtime );
-   <font color="#7B7B7B">...
-}</font>
-</pre>
-</td></tr></table>
-     
-<p><u>Replacement Java API</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-<font color="#7B7B7B">org.eclipse.wst.common.project.facet.core.IFacetedProject
-{
-   ...</font>
-   Set getTargetedRuntimes();
-   void setTargetedRuntimes( Set runtimes, IProgressMonitor monitor );
-   void addTargetedRuntime( IRuntime runtime, IProgressMonitor monitor );
-   void removeTargetedRuntime( IRuntime runtime, IProgressMonitor monitor );
-   IRuntime getPrimaryRuntime();
-   void setPrimaryRuntime( IRuntime runtime, IProgressMonitor monitor );
-   <font color="#7B7B7B">...
-}</font>
-</pre>
-</td></tr></table>
-
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="presets">6. Descriptions for Presets</a></font></p>
-<!--  ********************************************************************** -->
-
-<p>It is now possible to associate description with presets.</p>
-   
-<p><u>Extension Points Changes</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-<font color="#7B7B7B">&lt;extension point="org.eclipse.wst.common.project.facet.core.facets"&gt;
-  ...
-  &lt;preset&gt;
-    ...</font>
-    &lt;description&gt;...&lt/description&gt; <i>(0 or 1)</i>
-    <font color="#7B7B7B">...
-  &lt/preset&gt;
-  ...
-&lt;extension&gt;</font>
-</pre>
-</td></tr></table>
-
-<p><u>Java API Changes</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-<font color="#7B7B7B">org.eclipse.wst.common.project.facet.core.ProjectFacetsManager
-{
-   ...</font>
-   IPreset definePreset( String name, String description, Set facets );
-   <font color="#7B7B7B">...
-}</font>
-
-<font color="#7B7B7B">org.eclipse.wst.common.project.facet.core.IPreset
-{
-   ...</font>
-   String getDescription();
-   <font color="#7B7B7B">...
-}</font>
-</pre>
-</td></tr></table>
-
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="misc">7. Miscellaneous</a></font></p>
-<!--  ********************************************************************** -->
-
-<p><u>Java API Changes</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-<font color="#7B7B7B">org.eclipse.wst.common.project.facet.core.IProjectFacetVersion
-{
-   ...</font>
-   boolean isValidFor( Set fixed );
-   boolean conflictsWith( IProjectFacetVersion fv );
-   String getPluginId();
-   <font color="#7B7B7B">...
-}</font>
-
-org.eclipse.wst.common.project.facet.core.IVersionExpr
-{
-   boolean evaluate( String version );
-   String toDisplayString();
-}
-</pre>
-</td></tr></table>
-
-<p></p>
-
-</body>
-</html>
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/whatsnew151.html b/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/whatsnew151.html
deleted file mode 100644
index f6d3d8d..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/whatsnew151.html
+++ /dev/null
@@ -1,90 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<meta
-  http-equiv="Content-Type"
-  content="text/html; charset=iso-8859-1">
-<title>What's New for 1.5.1?</title>
-<link
-  rel="stylesheet"
-  type="text/css"
-  href="format.css">
-</head>
-
-<body>
-<p class="ueberschrift">What's New for 1.5.1?</p>
-
-<p>This document describes the API changes that have been made in the Faceted
-Project Framework for WTP 1.5.1 release. Both Java API and extension point 
-changes are covered. Note that the Faceted Project Framework API remains 
-provisional for the 1.5.1 release. This means it will continue undergoing 
-further significant changes in future release(s).</p>
-
-<ol>
-  <li><a href="#defver">Specifying Default Facet Version</a></li>
-  <li><a href="#wildcard">Wildcard Support in Version Expressions</a></li>
-</ol>
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="vexprs">1. Specifying Default Facet Version</a></font></p>
-<!--  ********************************************************************** -->
-
-<p>It is now possible to specify the facet version that will be used by default
-when the facet is presented to the user. There are two ways to specify the default
-version. You can either specify a static default or you can implement the
-<code>IDefaultVersionProvider</code> interface. If a default version is not
-specified, the latest version will be used instead.</p>
-
-<p><u>Extension Point Changes</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-<font color="#7B7B7B">&lt;extension point="org.eclipse.wst.common.project.facet.core.facets"&gt;
-  &lt;project-facet&gt;</font>
-    &lt;default-version version="{string}"/&gt; <i>(optional)</i>
-    &lt;default-version provider="{class:org.eclipse.wst.common.project.facet.core.IDefaultVersionProvider}"/&gt; <i>(optional)</i>
-  <font color="#7B7B7B">&lt;/project-facet&gt;
-&lt;extension&gt;</font>
-</pre>
-</td></tr></table>
-
-<p><u>Java API Additions</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-<font color="#7B7B7B">org.eclipse.wst.common.project.facet.core.IProjectFacet
-{</font>
-   IProjectFacetVersion getDefaultVersion();
-<font color="#7B7B7B">}</font>
-
-org.eclipse.wst.common.project.facet.core.IDefaultVersionProvider
-{
-   IProjectFacetVersion getDefaultVersion();
-}
-</pre>
-</td></tr></table>
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="wildcard">2. Wildcard Support in Version Expressions</a></font></p>
-<!--  ********************************************************************** -->
-
-<p>A wildcard character '*' can now be used in version expressions in order to
-match any version. Note that it is not possible to use the wildcard to match
-part of the version string.</p>
-
-<p><u>Java API Additions</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-<font color="#7B7B7B">org.eclipse.wst.common.project.facet.core.IVersionExpr
-{</font>
-   static final String WILDCARD_SYMBOL = "*";
-<font color="#7B7B7B">}</font>
-</pre>
-</td></tr></table>
-
-<p></p>
-
-</body>
-</html>
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/whatsnew20.html b/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/whatsnew20.html
deleted file mode 100644
index 97f5f0b..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/whatsnew20.html
+++ /dev/null
@@ -1,447 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<meta
-  http-equiv="Content-Type"
-  content="text/html; charset=iso-8859-1">
-<title>What's New for 2.0?</title>
-<link
-  rel="stylesheet"
-  type="text/css"
-  href="format.css">
-</head>
-
-<body>
-<p class="ueberschrift">What's New for 2.0?</p>
-
-<p>This document describes the API changes that have been made in the Faceted Project Framework for 
-the WTP 2.0 release. Both Java API and extension point changes are covered. All API that was 
-deprecated in this release is still supported, but clients are advised to switch to non-deprecated 
-alternatives as soon as feasible.</p>
-
-<ol>
-  <li><a href="#generics">Generics</a></li>
-  <li><a href="#presets">Improvements to Presets</a></li>
-  <li><a href="#comparable">IProjectFacetVersion and IRuntimeComponentVersion Extend Comparable</a></li>
-  <li><a href="#requires-group">Requires Constraint Supports Groups</a></li>
-  <li><a href="#group-labels">Labels and Descriptions for Groups</a></li>
-  <li><a href="#validate">New IFacetedProject Validation API</a></li>
-  <li><a href="#new-wizard-class">AddRemoveFacetsWizard Class Renamed to ModifyFacetedProjectWizard</a></li>
-  <li><a href="#pde-limitations">Extension Point Schema Changes to Work Around PDE Limitations</a></li>
-  <li><a href="#listeners">Listeners and Events</a></li>
-  <li><a href="#misc">Miscellaneous</a></li>
-</ol>
-
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="#generics">1. Generics</a></font></p>
-<!--  ********************************************************************** -->
-
-<p>All of the framework's API now use Java 5 generics. This has been done in a backwards compatible
-way and existing clients are expected to continue to work without any modifications. In order for a 
-client to gain access to the type safety afforded by generics in this API, the client plugin's Java 
-compiler level should be configured to be 5.0 or newer.</p>  
-
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="presets">2. Improvements to Presets</a></font></p>
-<!--  ********************************************************************** -->
-
-<p>Significant improvements have been made to the presets facility for the 2.0 release. A new type of
-preset, referred to as a dynamic preset, is now available. A dynamic preset uses an extender-supplied
-factory to synthesize the preset definition on the fly based on the context in which it will be
-used. The "old-style" declarative presets are still available and are now referred to as static
-presets. Static presets have also been improved to allow them to extend other presets. A static
-preset can even extend a dynamic preset.</p>
-
-<p>There is also a new preset that's part of the framework. It's a dynamic preset with id of 
-"default.configuration" and whose contents are synthesized as follows:</p>
-
-<ol>
-  <li>If a runtime is selected, this preset will contain default facets as specified by
-    IRuntime.getDefaultFacets(Set).</li>
-  <li>If no runtime is selected, this preset will contain default versions for all of the fixed
-    facets as specified by IProjectFacet.getDefaultVersion().</li>
-</ol>   
-
-<p><u>New Extension Point</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-&lt;extension point="org.eclipse.wst.common.project.facet.core.presets"&gt;
-  &lt;static-preset id="<i>{string}</i>" extends="<i>{string}</i>"&gt;
-    &lt;label&gt;<i>{string}</i>&lt;/label&gt; <i>(optional)</i>
-    &lt;description&gt;<i>{string}</i>&lt;/description&gt; <i>(optional)</i>
-    &lt;facet id="<i>{string}</i>" version="<i>{string}</i>"/&gt; <i>(1 or more)</i>
-  &lt;/static-preset&gt; <i>(0 or more)</i>
-  &lt;dynamic-preset id="<i>{string}</i>"&gt;
-    &lt;factory class="<i>{class:org.eclipse.wst.common.project.facet.core.IPresetFactory}</i>"/&gt;
-  &lt;/dynamic-preset&gt; <i>(0 or more)</i>
-&lt;extension&gt;
-</pre>
-</td></tr></table>
-
-<p><u>Deprecated Extension Point</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#FFF1C1">
-<pre>
-<font color="#7B7B7B">&lt;extension point="org.eclipse.wst.common.project.facet.core.facets"&gt;</font>
-  &lt;preset id="<i>{string}</i>"&gt;
-    &lt;label&gt;<i>{string}</i>&lt;/label&gt; <i>(optional)</i>
-    &lt;description&gt;<i>{string}</i>&lt;/description&gt; <i>(optional)</i>
-    &lt;facet id="<i>{string}</i>" version="<i>{string}</i>"/&gt; <i>(1 or more)</i>
-  &lt;/preset&gt; <i>(0 or more)</i>
-<font color="#7B7B7B">&lt;extension&gt;</font>
-</pre>
-</td></tr></table>
-
-<p><u>Java API Additions</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-<font color="#7B7B7B">interface org.eclipse.wst.common.project.facet.core.IPreset
-{</font>
-    enum Type { STATIC, DYNAMIC, USER_DEFINED }
-    Type getType();
-<font color="#7B7B7B">}</font>
-
-interface org.eclipse.wst.common.project.facet.core.IDynamicPreset extends IPreset
-{
-    static final String CONTEXT_KEY_FIXED_FACETS;
-    static final String CONTEXT_KEY_PRIMARY_RUNTIME;
-    IPreset resolve( Map<String,Object> context );
-}
-
-interface org.eclipse.wst.common.project.facet.core.IPresetFactory
-{
-    PresetDefinition createPreset( String presetId, Map<String,Object> context );
-}
-
-class org.eclipse.wst.common.project.facet.core.PresetDefinition
-{
-    PresetDefinition( String label, String description, Set<IProjectFacetVersion> facets );
-    String getLabel();
-    String getDescription();
-    Set<IProjectFacetVersion> getProjectFacets();
-}
-
-<font color="#7B7B7B">org.eclipse.wst.common.project.facet.core.FacetedProjectFramework
-{</font>
-    static final String DEFAULT_CONFIGURATION_PRESET_ID;
-<font color="#7B7B7B">}</font>
-</pre>
-</td></tr></table>
-
-<p><u>Deprecated Java API</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor=#FFF1C1>
-<pre>
-<font color="#7B7B7B">interface org.eclipse.wst.common.project.facet.core.IPreset
-{</font>
-    boolean isUserDefined()
-<font color="#7B7B7B">}</font>
-</pre>
-</td></tr></table>
-
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="#comparable">3. IProjectFacetVersion and IRuntimeComponentVersion Extend Comparable</a></font></p>
-<!--  ********************************************************************** -->
-
-<p>The IProjectFacetVersion and IRuntimeComponentVersion interfaces now extend
-Comparable. Using the compareTo methods will yield significantly better performance
-than calling the version comparator directly on the version strings as the 
-compareTo methods use pre-computed results and do not need to parse the version
-strings.</p>
-
-<p>As part of this change, IVersionExpr.evaluate( String ) method has been
-replaced with IVersionExpr.check( Comparable ) method.</p>
-
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="#requires-group">4. Requires Constraint Supports Groups</a></font></p>
-<!--  ********************************************************************** -->
-
-<p>The requires constraint can now be declared using facet groups instead of
-individual facets. Any member of the group will satisfy the constraint. This
-allows a level of indirection so that a facet does not need to know about all of
-the group members.</p>
-
-<p><u>Extension Point Changes</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-<font color="#7B7B7B">&lt;extension point="org.eclipse.wst.common.project.facet.core.facets"&gt;
-  &lt;project-facet-version&gt;
-    &lt;constraint&gt;</font>
-      &lt;requires group="group.id"/&gt;
-    <font color="#7B7B7B">&lt;/constraint&gt;
-  &lt;/project-facet-version&gt;
-&lt;extension&gt;</font>
-</pre>
-</td></tr></table>
-
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="group-labels">5. Labels and Descriptions for Groups</a></font></p>
-<!--  ********************************************************************** -->
-
-<p>It is now possible to associate labels and description with groups. Note that
-groups are still automatically created on first use, so the use of the new group
-element is only necessary in order to specify the label and the description.</p>
-   
-<p><u>Extension Points Changes</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-<font color="#7B7B7B">&lt;extension point="org.eclipse.wst.common.project.facet.core.facets"&gt;</font>
-  &lt;group id="..."&gt; <i>(0 or more)</i>
-    &lt;label&gt;...&lt/label&gt;
-    &lt;description&gt;...&lt/description&gt; <i>(0 or 1)</i>
-  &lt/group&gt;
-<font color="#7B7B7B">&lt;extension&gt;</font>
-</pre>
-</td></tr></table>
-
-<p><u>Java API Changes</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-<font color="#7B7B7B">org.eclipse.wst.common.project.facet.core.IGroup
-{</font>
-   String getLabel();
-   String getDescription();
-<font color="#7B7B7B">}</font>
-</pre>
-</td></tr></table>
-
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="validate">6. New IFacetedProject Validation API</a></font></p>
-<!--  ********************************************************************** -->
-
-<p>There is now API for validating the faceted project. It allows the caller to
-find out about any problems with the project without searching for problem
-markers created by the faceted project validation builder. The validation
-builder now uses the new API.</p>
-
-<p><u>Java API Changes</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-<font color="#7B7B7B">org.eclipse.wst.common.project.facet.core.IFacetedProject
-{</font>
-   IStatus validate( IProgressMonitor monitor );
-<font color="#7B7B7B">}</font>
-</pre>
-</td></tr></table>
-
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="new-wizard-class">7. AddRemoveFacetsWizard Class Renamed to ModifyFacetedProjectWizard</a></font></p>
-<!--  ********************************************************************** -->
-
-<p>The AddRemoveFacetsWizard class has been renamed to ModifyFacetedProjectWizard
-to align with terminology change being made in the rest of the system. The old
-class is deprecated, but still supported (extends the new class).</p>
-
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="pde-limitations">8. Extension Point Schema Changes to Work Around PDE Limitations</a></font></p>
-<!--  ********************************************************************** -->
-
-<p>In order to work around false warnings reported by PDE's extension point schema validation, the
-following changes have been made to the framework's extension points. The old syntax is deprecated,
-but is still supported.</p>
-
-<p>When declaring that a facet belongs to a category...</p>
-
-<p><u>Old Syntax</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-<font color="#7B7B7B">&lt;extension point="org.eclipse.wst.common.project.facet.core.facets"&gt;
-  &lt;project-facet&gt;</font>
-    &lt;category&gt;...&lt/category&gt;
-  <font color="#7B7B7B">&lt/project-facet&gt;
-&lt;extension&gt;</font>
-</pre>
-</td></tr></table>
-
-<p><u>New Syntax</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-<font color="#7B7B7B">&lt;extension point="org.eclipse.wst.common.project.facet.core.facets"&gt;
-  &lt;project-facet&gt;</font>
-    &lt;member category="..."/&gt;
-  <font color="#7B7B7B">&lt/project-facet&gt;
-&lt;extension&gt;</font>
-</pre>
-</td></tr></table>
-
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="listeners">9. Listeners and Events</a></font></p>
-<!--  ********************************************************************** -->
-
-<p>The existing facilities for listening on faceted project model changes have been re-designed to
-provide more information about the change that took place and to provide the same facility
-regardless of whether the client chooses to register the listener via direct API call or via an
-extension point.</p>
-
-<p>In 1.5, extenders could either:</p>
-
-<ol>
-  
-  <li>Use <code>IFacetedProject.addListener()</code> method. Listener would get called when any
-  aspect of faceted project model was changed, but the listener was not given any details about
-  the change that took place.<br/><br/></li>
-  
-  <li>Use <code>&lt;event-handler&gt;</code> element of the 
-  <code>org.eclipse.wst.common.project.facet.core.facets</code> extension point to register an
-  <code>IDelegate</code> implementation which is similar to how actions are implemented. This 
-  approach gave user a bit more control over what events to process as well as more information
-  regarding what actually took place. However, not all changes could be surfaced via this 
-  interface due to limitations of the extension point and the <code>IDelegate</code> interface.</li>
-  
-</ol>
-
-<p>Full discussion of the new facility can be found <a href="listeners.html">here</a>.</p>
-   
-<p><u>Java API Additions</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener
-{
-    void handleEvent( IFacetedProjectEvent event );
-}
-
-org.eclipse.wst.common.project.facet.core.events.IFacetedProjectEvent
-{
-    enum Type
-    {
-        PROJECT_MODIFIED,
-        PRE_INSTALL,
-        POST_INSTALL,
-        PRE_UNINSTALL,
-        POST_UNINSTALL,
-        PRE_VERSION_CHANGE,
-        POST_VERSION_CHANGE,
-        FIXED_FACETS_CHANGED,
-        TARGETED_RUNTIMES_CHANGED,
-        PRIMARY_RUNTIME_CHANGED
-    }
-    
-    Type getType();
-    IFacetedProject getProject();
-}
-
-org.eclipse.wst.common.project.facet.core.events.IFixedFacetsChangedEvent : IFacetedProjectEvent
-{
-    Set&lt;IProjectFacet&gt; getOldFixedFacets();
-    Set&lt;IProjectFacet&gt; getNewFixedFacets();
-}
-
-org.eclipse.wst.common.project.facet.core.events.IProjectFacetActionEvent : IFacetedProjectEvent
-{
-    IProjectFacet getProjectFacet();
-    IProjectFacetVersion getProjectFacetVersion();
-    Object getActionConfig();
-}
-
-org.eclipse.wst.common.project.facet.core.events.IPrimaryRuntimeChangedEvent : IFacetedProjectEvent
-{
-    IRuntime getOldPrimaryRuntime();
-    IRuntime getNewPrimaryRuntime();
-}
-
-org.eclipse.wst.common.project.facet.core.events.ITargetedRuntimesChangedEvent : IFacetedProjectEvent
-{
-    Set&lt;IRuntime&gt; getOldTargetedRuntimes();
-    Set&lt;IRuntime&gt; getNewTargetedRuntimes();
-}
-
-<font color="#7B7B7B">org.eclipse.wst.common.project.facet.core.IFacetedProject
-{</font>
-    void addListener( org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener, IFacetedProjectEvent.Type... );
-    void removeListener( org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener );
-<font color="#7B7B7B">}</font>
-
-<font color="#7B7B7B">org.eclipse.wst.common.project.facet.core.FacetedProjectFramework
-{</font>
-    void addListener( org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener, IFacetedProjectEvent.Type... );
-    void removeListener( org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener );
-<font color="#7B7B7B">}</font>
-</pre>
-</td></tr></table>
-
-<p><u>New Extension Point</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-&lt;extension point="org.eclipse.wst.common.project.facet.core.listeners"&gt;
-  &lt;listener 
-    class="{class:org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener}"
-    eventTypes="{csv:org.eclipse.wst.common.project.facet.core.events.IFacetedProjectEvent.Type}"/> <i>(1 or more)</i>
-&lt;extension&gt;
-</pre>
-</td></tr></table>
-
-<p><u>Deprecated Java API</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor=#FFF1C1>
-<pre>
-org.eclipse.wst.common.project.facet.core.IFacetedProjectListener
-{
-    projectChanged();
-}
-
-<font color="#7B7B7B">org.eclipse.wst.common.project.facet.core.IFacetedProject
-{</font>
-    void addListener( org.eclipse.wst.common.project.facet.core.IFacetedProjectListener );
-    void removeListener( org.eclipse.wst.common.project.facet.core.IFacetedProjectListener );
-<font color="#7B7B7B">}</font>
-
-org.eclipse.wst.common.project.facet.core.IRuntimeChangedEvent
-{
-    IRuntime getOldRuntime();
-    IRuntime getNewRuntime();
-}
-</pre>
-</td></tr></table>
-
-<p><u>Deprecated Extension Point</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#FFF1C1">
-<pre>
-<font color="#7B7B7B">&lt;extension point="org.eclipse.wst.common.project.facet.core.facets"&gt;</font>
-  &lt;event-handler type="{string}" facet="{string}" version="{string}"&gt;
-    &lt;delegate class="{class:org.eclipse.wst.common.project.facet.core.IDelegate}"/&gt;
-  &lt/event-handler&gt;
-<font color="#7B7B7B">&lt;extension&gt;</font>
-</pre>
-</td></tr></table>
-
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="misc">10. Miscellaneous</a></font></p>
-<!--  ********************************************************************** -->
-
-<p><u>Java API Additions</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-<font color="#7B7B7B">org.eclipse.wst.common.project.facet.core.IFacetedProject
-{</font>
-    boolean isTargetable( IRuntime runtime );
-    boolean isTargeted( IRuntime runtime );
-<font color="#7B7B7B">}</font>
-</pre>
-</td></tr></table>
-
-
-</body>
-</html>
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/whatsnew301.html b/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/whatsnew301.html
deleted file mode 100644
index d8a7c83..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/whatsnew301.html
+++ /dev/null
@@ -1,45 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<meta
-  http-equiv="Content-Type"
-  content="text/html; charset=iso-8859-1">
-<title>What's New for 2.0?</title>
-<link
-  rel="stylesheet"
-  type="text/css"
-  href="format.css">
-</head>
-
-<body>
-<p class="ueberschrift">What's New for 3.0.1?</p>
-
-<p>This document describes the API changes that have been made in the Faceted Project Framework for 
-the WTP 3.0.1 release. Both Java API and extension point changes are covered. All API that was 
-deprecated in this release is still supported, but clients are advised to switch to non-deprecated 
-alternatives as soon as feasible.</p>
-
-<ol>
-  <li><a href="#separate-icons">Separate Icons for Different Versions of a Runtime Component Type</a></li>
-  <li><a href="#rcv-adaptable">IRuntimeComponentVersion Extends IAdaptable</a></li>
-</ol>
-
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="#separate-icons">1. Separate Icons for Different Versions of a Runtime Component Type</a></font></p>
-<!--  ********************************************************************** -->
-
-<p>The <code>images</code> extension point now supports a <code>version</code> attribute when used
-together with <code>runtime-component-type</code> attribute. This allows separate icons to be used
-for different versions of the same runtime component type.</p>  
-
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="#rcv-adaptable">2. IRuntimeComponentVersion Extends IAdaptable</a></font></p>
-<!--  ********************************************************************** -->
-
-<p>IRuntimeComponentVersion interface now extends platform's IAdaptable interface.</p>
-
-</body>
-</html>
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/whatsnew310.html b/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/whatsnew310.html
deleted file mode 100644
index 11e87b5..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/whatsnew310.html
+++ /dev/null
@@ -1,121 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<meta
-  http-equiv="Content-Type"
-  content="text/html; charset=iso-8859-1">
-<title>What's New for 3.1?</title>
-<link
-  rel="stylesheet"
-  type="text/css"
-  href="format.css">
-</head>
-
-<body>
-<p class="ueberschrift">What's New for 3.1?</p>
-
-<p>This document describes the API changes that have been made in the Faceted Project Framework for 
-the WTP 3.1 release. Both Java API and extension point changes are covered.</p>
-
-<ol>
-  <li><a href="#framework-exception">FacetedProjectFrameworkException</a></li>
-  <li><a href="#batching-validate-edit">Batching Validate Edit Calls</a></li>
-  <li><a href="#basic-wizard">Improvements to BasicFacetedProjectWizard</a></li>
-  <li><a href="#preferences">Managing Project Facet Preferences</a></li>
-</ol>
-
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="#framework-exception">1. FacetedProjectFrameworkException</a></font></p>
-<!--  ********************************************************************** -->
-
-<p>A framework-specific subclass of CoreException has been introduced in order to allow IDelegate implementations 
-a way to signal that an exception is expected. An example of an expected exception is when a user 
-declines to make a necessary file writable. Marking an exception as expected can be used as a signal 
-by handlers to alter the way the exception is presented to the user (perhaps not displaying the 
-stack trace and/or not logging it).</p>
-
-<p><u>Java API Additions</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-interface FacetedProjectFrameworkException extends CoreException
-{
-    FacetedProjectFrameworkException( IStatus status );
-    boolean isExpected();
-    void setExcpeted( boolean expected );
-}
-</pre>
-</td></tr></table>
-
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="#batching-validate-edit">2. Batching Validate Edit Calls</a></font></p>
-<!--  ********************************************************************** -->
-
-<p>It is often desirable to batch IWorkspace.validateEdit() calls in order to reduce the number
-of prompts to the user. An API has been added to allow a facet action to specify the files that
-it intends to operate on. The framework will make a batched call to validateEdit prior to running 
-any of the actions.</p>
-
-<p><u>Java API Additions</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-<font color="#7B7B7B">abstract class ActionConfig
-{</font>    
-    Set<IFile> getValidateEditFiles();
-<font color="#7B7B7B">}</font>
-</pre>
-</td></tr></table>
-
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="#basic-wizard">3. Improvements to BasicFacetedProjectWizard</a></font></p>
-<!--  ********************************************************************** -->
-
-<p>The generic New Faceted Project wizard now allows the project to be added to working
-sets via UI on the first page.</p>
-
-<p><u>Java API Additions</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-<font color="#7B7B7B">class BasicFacetedProjectWizard
-{</font>    
-    IWorkbench getWorkbench();
-    IStructuredSelection getSelection();
-<font color="#7B7B7B">}</font>
-
-class BasicFacetedProjectWizardFirstPage extends WizardNewProjectCreationPage
-{    
-}
-</pre>
-</td></tr></table>
- 
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="#preferences">4. Managing Project Facet Preferences</a></font></p>
-<!--  ********************************************************************** -->
-
-<p>New facility for managing preferences associated with facets has been introduced. More information
-can be found in <a href="answers/projectFacetPreferences.html">FAQ</a>.</p>
-
-<p><u>Java API Additions</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-<font color="#7B7B7B">class FacetedProjectFramework
-{</font>
-    Preferences getPreferences( IProjectFacet facet );
-<font color="#7B7B7B">}</font>
-
-<font color="#7B7B7B">interface IFacetedProject
-{</font>
-    Preferences getPreferences( IProjectFacet facet );
-<font color="#7B7B7B">}</font>
-</pre>
-</td></tr></table>
-</body>
-</html>
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/javadoc.xml b/plugins/org.eclipse.wst.common.project.facet.doc.api/javadoc.xml
deleted file mode 100644
index 5186947..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/javadoc.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<project default="export-javadoc">
-	
-  <target name="export-javadoc">
-  	<property environment="env"/>
-    <property name="javadoc.dir" value="reference/api"/>
-  	<mkdir dir="${javadoc.dir}"/>
-    <delete dir="${javadoc.dir}"/>
-  	<mkdir dir="${javadoc.dir}"/>
-    <javadoc
-      maxmemory="1024m"
-      destdir="${javadoc.dir}" 
-      access="protected" 
-      author="true"
-      version="true"
-      splitindex="true" 
-      use="true"
-      failonerror="true"
-      executable="${env.JAVA_5_HOME}/bin/javadoc">
-      <doctitle>Faceted Project Framework</doctitle>
-      <header><![CDATA[<b>Faceted Project Framework</b><br/>Version 1.3]]></header>
-      <footer><![CDATA[<b>Faceted Project Framework</b><br/>Version 1.3]]></footer>
-      <bottom><![CDATA[Copyright (c) 2008 Oracle and others. All rights reserved.]]></bottom>
-      <group title="Core Packages" packages="org.eclipse.wst.common.project.facet.core:org.eclipse.wst.common.project.facet.core.*"/>
-      <group title="UI Packages" packages="org.eclipse.wst.common.project.facet.ui"/>
-      <packageset dir="../org.eclipse.wst.common.project.facet.core/src">
-        <include name="**/*"/>
-        <exclude name="**/internal/**"/>
-      </packageset>
-      <packageset dir="../org.eclipse.wst.common.project.facet.ui/src">
-        <include name="**/*"/>
-        <exclude name="**/internal/**"/>
-      </packageset>
-      <classpath refid="@dot.classpath"/>
-      <link href="http://java.sun.com/j2se/1.5/docs/api" offline="true" packagelistLoc="package-lists/java"/>
-      <link href="/org.eclipse.platform.doc.isv/reference/api" offline="true" packagelistLoc="package-lists/eclipse-platform"/>
-    </javadoc>
-  </target>
-	
-</project>
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/package-lists/eclipse-platform/package-list b/plugins/org.eclipse.wst.common.project.facet.doc.api/package-lists/eclipse-platform/package-list
deleted file mode 100644
index b92c72f..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/package-lists/eclipse-platform/package-list
+++ /dev/null
@@ -1,225 +0,0 @@
-org.eclipse.ant.core
-org.eclipse.compare
-org.eclipse.compare.contentmergeviewer
-org.eclipse.compare.patch
-org.eclipse.compare.rangedifferencer
-org.eclipse.compare.structuremergeviewer
-org.eclipse.core.commands
-org.eclipse.core.commands.common
-org.eclipse.core.commands.contexts
-org.eclipse.core.commands.operations
-org.eclipse.core.databinding
-org.eclipse.core.databinding.beans
-org.eclipse.core.databinding.conversion
-org.eclipse.core.databinding.observable
-org.eclipse.core.databinding.observable.list
-org.eclipse.core.databinding.observable.map
-org.eclipse.core.databinding.observable.masterdetail
-org.eclipse.core.databinding.observable.set
-org.eclipse.core.databinding.observable.value
-org.eclipse.core.databinding.util
-org.eclipse.core.databinding.validation
-org.eclipse.core.expressions
-org.eclipse.core.filebuffers
-org.eclipse.core.filebuffers.manipulation
-org.eclipse.core.filesystem
-org.eclipse.core.filesystem.provider
-org.eclipse.core.net.proxy
-org.eclipse.core.resources
-org.eclipse.core.resources.mapping
-org.eclipse.core.resources.refresh
-org.eclipse.core.resources.team
-org.eclipse.core.runtime
-org.eclipse.core.runtime.adaptor
-org.eclipse.core.runtime.content
-org.eclipse.core.runtime.dynamichelpers
-org.eclipse.core.runtime.jobs
-org.eclipse.core.runtime.model
-org.eclipse.core.runtime.preferences
-org.eclipse.core.runtime.spi
-org.eclipse.core.variables
-org.eclipse.debug.core
-org.eclipse.debug.core.commands
-org.eclipse.debug.core.model
-org.eclipse.debug.core.sourcelookup
-org.eclipse.debug.core.sourcelookup.containers
-org.eclipse.debug.ui
-org.eclipse.debug.ui.actions
-org.eclipse.debug.ui.console
-org.eclipse.debug.ui.contexts
-org.eclipse.debug.ui.memory
-org.eclipse.debug.ui.sourcelookup
-org.eclipse.equinox.app
-org.eclipse.equinox.http.jetty
-org.eclipse.equinox.http.registry
-org.eclipse.equinox.http.servlet
-org.eclipse.equinox.jsp.jasper
-org.eclipse.equinox.jsp.jasper.registry
-org.eclipse.equinox.security.auth
-org.eclipse.equinox.security.auth.credentials
-org.eclipse.equinox.security.auth.module
-org.eclipse.equinox.security.storage
-org.eclipse.equinox.security.storage.provider
-org.eclipse.help
-org.eclipse.help.browser
-org.eclipse.help.search
-org.eclipse.help.standalone
-org.eclipse.help.ui
-org.eclipse.help.ui.browser
-org.eclipse.jface.action
-org.eclipse.jface.bindings
-org.eclipse.jface.bindings.keys
-org.eclipse.jface.bindings.keys.formatting
-org.eclipse.jface.commands
-org.eclipse.jface.contentassist
-org.eclipse.jface.contexts
-org.eclipse.jface.databinding.swt
-org.eclipse.jface.databinding.viewers
-org.eclipse.jface.databinding.wizard
-org.eclipse.jface.dialogs
-org.eclipse.jface.fieldassist
-org.eclipse.jface.layout
-org.eclipse.jface.menus
-org.eclipse.jface.operation
-org.eclipse.jface.preference
-org.eclipse.jface.resource
-org.eclipse.jface.text
-org.eclipse.jface.text.contentassist
-org.eclipse.jface.text.formatter
-org.eclipse.jface.text.hyperlink
-org.eclipse.jface.text.information
-org.eclipse.jface.text.link
-org.eclipse.jface.text.presentation
-org.eclipse.jface.text.projection
-org.eclipse.jface.text.quickassist
-org.eclipse.jface.text.reconciler
-org.eclipse.jface.text.revisions
-org.eclipse.jface.text.rules
-org.eclipse.jface.text.source
-org.eclipse.jface.text.source.projection
-org.eclipse.jface.text.templates
-org.eclipse.jface.text.templates.persistence
-org.eclipse.jface.util
-org.eclipse.jface.viewers
-org.eclipse.jface.viewers.deferred
-org.eclipse.jface.window
-org.eclipse.jface.wizard
-org.eclipse.jsch.core
-org.eclipse.jsch.ui
-org.eclipse.ltk.core.refactoring
-org.eclipse.ltk.core.refactoring.history
-org.eclipse.ltk.core.refactoring.model
-org.eclipse.ltk.core.refactoring.participants
-org.eclipse.ltk.core.refactoring.resource
-org.eclipse.ltk.ui.refactoring
-org.eclipse.ltk.ui.refactoring.actions
-org.eclipse.ltk.ui.refactoring.history
-org.eclipse.ltk.ui.refactoring.model
-org.eclipse.ltk.ui.refactoring.resource
-org.eclipse.osgi.service.datalocation
-org.eclipse.osgi.util
-org.eclipse.search.core.text
-org.eclipse.search.ui
-org.eclipse.search.ui.actions
-org.eclipse.search.ui.text
-org.eclipse.swt
-org.eclipse.swt.accessibility
-org.eclipse.swt.awt
-org.eclipse.swt.browser
-org.eclipse.swt.custom
-org.eclipse.swt.dnd
-org.eclipse.swt.events
-org.eclipse.swt.graphics
-org.eclipse.swt.layout
-org.eclipse.swt.ole.win32
-org.eclipse.swt.opengl
-org.eclipse.swt.printing
-org.eclipse.swt.program
-org.eclipse.swt.widgets
-org.eclipse.team.core
-org.eclipse.team.core.diff
-org.eclipse.team.core.diff.provider
-org.eclipse.team.core.history
-org.eclipse.team.core.history.provider
-org.eclipse.team.core.mapping
-org.eclipse.team.core.mapping.provider
-org.eclipse.team.core.subscribers
-org.eclipse.team.core.synchronize
-org.eclipse.team.core.variants
-org.eclipse.team.ui
-org.eclipse.team.ui.history
-org.eclipse.team.ui.mapping
-org.eclipse.team.ui.synchronize
-org.eclipse.text.edits
-org.eclipse.text.undo
-org.eclipse.ui
-org.eclipse.ui.about
-org.eclipse.ui.actions
-org.eclipse.ui.activities
-org.eclipse.ui.application
-org.eclipse.ui.branding
-org.eclipse.ui.browser
-org.eclipse.ui.cheatsheets
-org.eclipse.ui.commands
-org.eclipse.ui.console
-org.eclipse.ui.console.actions
-org.eclipse.ui.contentassist
-org.eclipse.ui.contexts
-org.eclipse.ui.dialogs
-org.eclipse.ui.editors.text
-org.eclipse.ui.editors.text.templates
-org.eclipse.ui.fieldassist
-org.eclipse.ui.forms
-org.eclipse.ui.forms.editor
-org.eclipse.ui.forms.events
-org.eclipse.ui.forms.widgets
-org.eclipse.ui.handlers
-org.eclipse.ui.help
-org.eclipse.ui.ide
-org.eclipse.ui.ide.dialogs
-org.eclipse.ui.ide.fileSystem
-org.eclipse.ui.ide.undo
-org.eclipse.ui.intro
-org.eclipse.ui.intro.config
-org.eclipse.ui.intro.universal
-org.eclipse.ui.keys
-org.eclipse.ui.menus
-org.eclipse.ui.model
-org.eclipse.ui.navigator
-org.eclipse.ui.navigator.resources
-org.eclipse.ui.operations
-org.eclipse.ui.part
-org.eclipse.ui.plugin
-org.eclipse.ui.preferences
-org.eclipse.ui.presentations
-org.eclipse.ui.progress
-org.eclipse.ui.services
-org.eclipse.ui.statushandlers
-org.eclipse.ui.swt
-org.eclipse.ui.testing
-org.eclipse.ui.texteditor
-org.eclipse.ui.texteditor.link
-org.eclipse.ui.texteditor.quickdiff
-org.eclipse.ui.texteditor.rulers
-org.eclipse.ui.texteditor.spelling
-org.eclipse.ui.texteditor.templates
-org.eclipse.ui.themes
-org.eclipse.ui.views
-org.eclipse.ui.views.bookmarkexplorer
-org.eclipse.ui.views.contentoutline
-org.eclipse.ui.views.framelist
-org.eclipse.ui.views.markers
-org.eclipse.ui.views.navigator
-org.eclipse.ui.views.properties
-org.eclipse.ui.views.properties.tabbed
-org.eclipse.ui.views.tasklist
-org.eclipse.ui.wizards
-org.eclipse.ui.wizards.datatransfer
-org.eclipse.ui.wizards.newresource
-org.eclipse.update.configuration
-org.eclipse.update.configurator
-org.eclipse.update.core
-org.eclipse.update.core.model
-org.eclipse.update.operations
-org.eclipse.update.search
-org.eclipse.update.standalone
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/package-lists/java/package-list b/plugins/org.eclipse.wst.common.project.facet.doc.api/package-lists/java/package-list
deleted file mode 100644
index 4878336..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/package-lists/java/package-list
+++ /dev/null
@@ -1,166 +0,0 @@
-java.applet
-java.awt
-java.awt.color
-java.awt.datatransfer
-java.awt.dnd
-java.awt.event
-java.awt.font
-java.awt.geom
-java.awt.im
-java.awt.im.spi
-java.awt.image
-java.awt.image.renderable
-java.awt.print
-java.beans
-java.beans.beancontext
-java.io
-java.lang
-java.lang.annotation
-java.lang.instrument
-java.lang.management
-java.lang.ref
-java.lang.reflect
-java.math
-java.net
-java.nio
-java.nio.channels
-java.nio.channels.spi
-java.nio.charset
-java.nio.charset.spi
-java.rmi
-java.rmi.activation
-java.rmi.dgc
-java.rmi.registry
-java.rmi.server
-java.security
-java.security.acl
-java.security.cert
-java.security.interfaces
-java.security.spec
-java.sql
-java.text
-java.util
-java.util.concurrent
-java.util.concurrent.atomic
-java.util.concurrent.locks
-java.util.jar
-java.util.logging
-java.util.prefs
-java.util.regex
-java.util.zip
-javax.accessibility
-javax.activity
-javax.crypto
-javax.crypto.interfaces
-javax.crypto.spec
-javax.imageio
-javax.imageio.event
-javax.imageio.metadata
-javax.imageio.plugins.bmp
-javax.imageio.plugins.jpeg
-javax.imageio.spi
-javax.imageio.stream
-javax.management
-javax.management.loading
-javax.management.modelmbean
-javax.management.monitor
-javax.management.openmbean
-javax.management.relation
-javax.management.remote
-javax.management.remote.rmi
-javax.management.timer
-javax.naming
-javax.naming.directory
-javax.naming.event
-javax.naming.ldap
-javax.naming.spi
-javax.net
-javax.net.ssl
-javax.print
-javax.print.attribute
-javax.print.attribute.standard
-javax.print.event
-javax.rmi
-javax.rmi.CORBA
-javax.rmi.ssl
-javax.security.auth
-javax.security.auth.callback
-javax.security.auth.kerberos
-javax.security.auth.login
-javax.security.auth.spi
-javax.security.auth.x500
-javax.security.cert
-javax.security.sasl
-javax.sound.midi
-javax.sound.midi.spi
-javax.sound.sampled
-javax.sound.sampled.spi
-javax.sql
-javax.sql.rowset
-javax.sql.rowset.serial
-javax.sql.rowset.spi
-javax.swing
-javax.swing.border
-javax.swing.colorchooser
-javax.swing.event
-javax.swing.filechooser
-javax.swing.plaf
-javax.swing.plaf.basic
-javax.swing.plaf.metal
-javax.swing.plaf.multi
-javax.swing.plaf.synth
-javax.swing.table
-javax.swing.text
-javax.swing.text.html
-javax.swing.text.html.parser
-javax.swing.text.rtf
-javax.swing.tree
-javax.swing.undo
-javax.transaction
-javax.transaction.xa
-javax.xml
-javax.xml.datatype
-javax.xml.namespace
-javax.xml.parsers
-javax.xml.transform
-javax.xml.transform.dom
-javax.xml.transform.sax
-javax.xml.transform.stream
-javax.xml.validation
-javax.xml.xpath
-org.ietf.jgss
-org.omg.CORBA
-org.omg.CORBA.DynAnyPackage
-org.omg.CORBA.ORBPackage
-org.omg.CORBA.TypeCodePackage
-org.omg.CORBA.portable
-org.omg.CORBA_2_3
-org.omg.CORBA_2_3.portable
-org.omg.CosNaming
-org.omg.CosNaming.NamingContextExtPackage
-org.omg.CosNaming.NamingContextPackage
-org.omg.Dynamic
-org.omg.DynamicAny
-org.omg.DynamicAny.DynAnyFactoryPackage
-org.omg.DynamicAny.DynAnyPackage
-org.omg.IOP
-org.omg.IOP.CodecFactoryPackage
-org.omg.IOP.CodecPackage
-org.omg.Messaging
-org.omg.PortableInterceptor
-org.omg.PortableInterceptor.ORBInitInfoPackage
-org.omg.PortableServer
-org.omg.PortableServer.CurrentPackage
-org.omg.PortableServer.POAManagerPackage
-org.omg.PortableServer.POAPackage
-org.omg.PortableServer.ServantLocatorPackage
-org.omg.PortableServer.portable
-org.omg.SendingContext
-org.omg.stub.java.rmi
-org.w3c.dom
-org.w3c.dom.bootstrap
-org.w3c.dom.events
-org.w3c.dom.ls
-org.xml.sax
-org.xml.sax.ext
-org.xml.sax.helpers
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/plugin.properties b/plugins/org.eclipse.wst.common.project.facet.doc.api/plugin.properties
deleted file mode 100644
index bee0df9..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/plugin.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-pluginName = Eclipse Faceted Project Framework API Documentation
-providerName = Eclipse Web Tools Platform
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/plugin.xml b/plugins/org.eclipse.wst.common.project.facet.doc.api/plugin.xml
deleted file mode 100644
index 1e6c624..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/plugin.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-
-<plugin>
-  
-  <extension point="org.eclipse.help.toc">
-    <toc file="toc.xml" primary="true">
-    </toc>
-  </extension>
-	
-  <extension point="org.eclipse.pde.core.javadoc">
-    <javadoc path="reference/api">
-      <plugin id="org.eclipse.wst.common.project.facet.core"/>
-      <plugin id="org.eclipse.wst.common.project.facet.ui"/>
-    </javadoc>
-  </extension>
-   	
-</plugin>
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/src/.do-not-delete b/plugins/org.eclipse.wst.common.project.facet.doc.api/src/.do-not-delete
deleted file mode 100644
index e69de29..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/src/.do-not-delete
+++ /dev/null
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/toc.xml b/plugins/org.eclipse.wst.common.project.facet.doc.api/toc.xml
deleted file mode 100644
index 84fab80..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/toc.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.toc"?>
-
-<toc label="Faceted Project Framework Developer Guide">
-
-  <topic label="Programmer's Guide" href="guide/description.html">
-    <topic 
-      label="Tutorial" 
-      href="guide/tutorial/tutorial.html"/>
-    <topic 
-      label="Listening for Changes to Faceted Projects"
-      href="guide/listeners.html"/>
-    <topic 
-      label="Enabling UI Elements Based on Project Facets"
-      href="guide/enabling-based-on-facets.html"/>
-    <topic label="Questions &amp; Answers">
-       <topic href="guide/answers/projectFacetPreferences.html" label="Managing Preferences">
-       </topic>
-    </topic>
-    <topic 
-      label="New for 1.5"
-      href="guide/whatsnew150.html"/>
-    <topic 
-      label="New for 1.5.1"
-      href="guide/whatsnew151.html"/>
-    <topic 
-      label="New for 2.0"
-      href="guide/whatsnew20.html"/>
-    <topic 
-      label="New for 3.0.1"
-      href="guide/whatsnew301.html"/>
-    <topic 
-      label="New for 3.1"
-      href="guide/whatsnew310.html"/>
-  </topic>
-    
-  <topic label="Reference">
-    <topic label="API Reference" href="reference/api/overview-summary.html">
-      <topic 
-        label="org.eclipse.wst.common.project.facet.core"
-        href="reference/api/org/eclipse/wst/common/project/facet/core/package-summary.html"/>
-      <topic
-        label="org.eclipse.wst.common.project.facet.core.events"
-        href="reference/api/org/eclipse/wst/common/project/facet/core/events/package-summary.html"/>
-      <topic
-        label="org.eclipse.wst.common.project.facet.core.runtime"
-        href="reference/api/org/eclipse/wst/common/project/facet/core/runtime/package-summary.html"/>
-      <topic
-        label="org.eclipse.wst.common.project.facet.core.runtime.events"
-        href="reference/api/org/eclipse/wst/common/project/facet/core/runtime/events/package-summary.html"/>
-      <topic
-        label="org.eclipse.wst.common.project.facet.core.util"
-        href="reference/api/org/eclipse/wst/common/project/facet/core/util/package-summary.html"/>
-      <topic
-        label="org.eclipse.wst.common.project.facet.ui"
-        href="reference/api/org/eclipse/wst/common/project/facet/ui/package-summary.html"/>
-    </topic>
-  </topic>   
-      
-</toc>
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/.classpath b/tests/org.eclipse.wst.common.project.facet.core.tests/.classpath
deleted file mode 100644
index 304e861..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/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/tests/org.eclipse.wst.common.project.facet.core.tests/.cvsignore b/tests/org.eclipse.wst.common.project.facet.core.tests/.cvsignore
deleted file mode 100644
index 52e8206..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-javaCompiler.tests.jar.args
-build.xml
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/.project b/tests/org.eclipse.wst.common.project.facet.core.tests/.project
deleted file mode 100644
index 34d80fc..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.common.project.facet.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/tests/org.eclipse.wst.common.project.facet.core.tests/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.wst.common.project.facet.core.tests/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 7a5f1c3..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Fri Feb 02 16:51:39 PST 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/tests/org.eclipse.wst.common.project.facet.core.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.wst.common.project.facet.core.tests/META-INF/MANIFEST.MF
deleted file mode 100644
index bf7f1fd..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,15 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Vendor: Eclipse.org
-Bundle-Name: Facet Core Tests Plug-in
-Bundle-SymbolicName: org.eclipse.wst.common.project.facet.core.tests;singleton:=true
-Bundle-Version: 1.4.0.qualifier
-Bundle-Localization: plugin
-Require-Bundle: org.junit;bundle-version="[3.8.2,4.0.0)",
- org.eclipse.wst.common.project.facet.core,
- org.eclipse.core.runtime,
- org.eclipse.core.resources
-Export-Package: org.eclipse.wst.common.project.facet.core.tests,
- org.eclipse.wst.common.project.facet.core.tests.support
-Bundle-ClassPath: tests.jar
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/about.html b/tests/org.eclipse.wst.common.project.facet.core.tests/about.html
deleted file mode 100644
index 0799bdb..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/about.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-
-<BODY lang="EN-US">
-
-<H3>About This Content</H3>
-
-<P>June, 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/tests/org.eclipse.wst.common.project.facet.core.tests/build.properties b/tests/org.eclipse.wst.common.project.facet.core.tests/build.properties
deleted file mode 100644
index 07502c0..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/build.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-bin.includes = META-INF/,\
-               plugin.xml,\
-               test.xml,\
-               tests.jar,\
-               about.html,\
-               resources/,\
-               plugin.properties
-jars.compile.order = tests.jar
-source.tests.jar = src/
-output.tests.jar = bin/
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/plugin.properties b/tests/org.eclipse.wst.common.project.facet.core.tests/plugin.properties
deleted file mode 100644
index 5883308..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/plugin.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-# properties file for org.eclipse.wst.common.project.facet.core.tests
-Bundle-Name.0 = Facet Core Tests Plug-in
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/plugin.xml b/tests/org.eclipse.wst.common.project.facet.core.tests/plugin.xml
deleted file mode 100644
index 297194a..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/plugin.xml
+++ /dev/null
@@ -1,575 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-
-<plugin>
-  
-  <extension point="org.eclipse.wst.common.project.facet.core.facets">
-    
-    <category id="cat1">
-      <label>Category 1</label>
-      <description>This is the category description.</description>
-    </category>
-
-    <project-facet id="facet1">
-      <label>Facet 1</label>
-      <description>This is the description of facet1.</description>
-    </project-facet>
-    
-    <project-facet-version facet="facet1" version="1.0">
-      <action type="install">
-        <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.Facet1InstallDelegate"/>
-      </action>
-      <action type="uninstall">
-        <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.Facet1UninstallDelegate"/>
-      </action>
-      <action type="version-change">
-        <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.Facet1VersionChangeDelegate"/>
-      </action>
-    </project-facet-version>
-    
-    <project-facet-version facet="facet1" version="1.2">
-      <action type="install">
-        <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.Facet1InstallDelegate"/>
-      </action>
-      <action type="uninstall">
-        <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.Facet1UninstallDelegate"/>
-      </action>
-      <action type="version-change">
-        <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.Facet1VersionChangeDelegate"/>
-      </action>
-    </project-facet-version>
-    
-    <project-facet-version facet="facet1" version="1.2.1"/>
-    <project-facet-version facet="facet1" version="1.3"/>
-    <project-facet-version facet="facet1" version="2.0"/>
-
-    <action facet="facet1" version="[1.2.1-2.0]" type="install">
-      <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.Facet1InstallDelegate"/>
-    </action>
-    
-    <action facet="facet1" version="[1.2.1-2.0]" type="uninstall">
-      <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.Facet1UninstallDelegate"/>
-    </action>
-    
-    <action facet="facet1" version="[1.2.1-2.0]" type="version-change">
-      <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.Facet1VersionChangeDelegate"/>
-    </action>
-    
-    <project-facet id="facet2">
-      <version-comparator class="org.eclipse.wst.common.project.facet.core.tests.support.CustomVersionComparator"/>
-      <member category="cat1"/>
-    </project-facet>
-    
-    <project-facet-version facet="facet2" version="3.5">
-      <constraint>
-        <requires facet="facet1" version="1.0"/>
-      </constraint>
-    </project-facet-version>
-    
-    <project-facet-version facet="facet2" version="3.5#a">
-      <constraint>
-        <and>
-          <requires facet="facet1" version="[1.2-1.3)"/>
-        </and>
-      </constraint>
-    </project-facet-version>
-    
-    <project-facet-version facet="facet2" version="4.7">
-      <constraint>
-        <or>
-          <requires facet="facet1" version="[1.3"/>
-        </or>
-      </constraint>
-    </project-facet-version>
-    
-    <project-facet-version facet="facet2" version="4.7#b">
-      <constraint>
-        <or>
-          <requires facet="facet1" version="1.3"/>
-          <requires facet="facet1" version="2.0"/>
-        </or>
-      </constraint>
-    </project-facet-version>
-        
-    <project-facet-version facet="facet2" version="4.7#c">
-      <constraint>
-        <and>
-          <or>
-            <requires facet="facet1" version="1.2.1"/>
-            <requires facet="facet1" version="1.3"/>
-            <requires facet="facet1" version="2.0"/>
-          </or>
-          <conflicts facet="facet3a"/>
-          <conflicts facet="facet3b" version="1.0"/>
-          <conflicts group="group1"/>
-        </and>
-      </constraint>
-      <group-member id="group1"/>
-    </project-facet-version>
-    
-    <project-facet id="facet2ext">
-      <member category="cat1"/>
-    </project-facet>
-    
-    <project-facet-version facet="facet2ext" version="1.0"/>
-
-    <category id="cat2"/>
-    
-    <project-facet id="facet3a"> <!-- Tests a facet with no description. -->
-      <member category="cat2"/>
-    </project-facet>
-    
-    <project-facet-version facet="facet3a" version="1.0"/>
-    <project-facet-version facet="facet3a" version="2.0"/>
-    
-    <action facet="facet3a" version="[1.0-2.0]" type="install">
-      <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.Facet3aInstallDelegate"/>
-    </action>
-
-    <action facet="facet3a" version="[1.0-2.0]" type="uninstall">
-      <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.Facet3aUninstallDelegate"/>
-    </action>
-    
-    <action facet="facet3a" version="[1.0-2.0]" type="version-change">
-      <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.Facet3aVersionChangeDelegate"/>
-    </action>
-
-    <project-facet id="facet3b">
-      <member category="cat2"/>
-      <description></description> <!-- Tests a facet with an empty description. -->
-    </project-facet>
-    
-    <project-facet-version facet="facet3b" version="1.0"/>
-    <project-facet-version facet="facet3b" version="2.0"/>
-    
-    <project-facet id="facet3c">
-      <member category="cat2"/>
-    </project-facet>
-    
-    <project-facet-version facet="facet3c" version="1.0">
-      <group-member id="group1"/>
-    </project-facet-version>
-
-    <project-facet-version facet="facet3c" version="2.0">
-      <group-member id="group1"/>
-    </project-facet-version>
-
-  </extension>
-  
-  <!-- PresetsTests -->
-  
-  <extension point="org.eclipse.wst.common.project.facet.core.presets">
-  
-    <static-preset id="pt_preset1">
-      <label>Preset 1</label>
-      <description>This is the description for the first preset.</description>
-      <facet id="facet1" version="2.0"/>
-      <facet id="facet2" version="3.5#a"/>
-      <facet id="facet2ext" version="1.0"/>
-    </static-preset>
-
-    <static-preset id="pt_preset2">
-      <facet id="facet3a" version="1.0"/>
-      <facet id="facet3b" version="1.0"/>
-      <facet id="facet3c" version="1.0"/>
-    </static-preset>
-    
-    <static-preset id="pt_preset3" extends="pt_preset1">
-      <facet id="facet3a" version="1.0"/>
-      <facet id="facet1" version="1.2.1"/>  <!-- Tests that the version in derived preset wins. -->
-    </static-preset>      
-
-    <dynamic-preset id="pt_dyn_preset">
-      <factory class="org.eclipse.wst.common.project.facet.core.tests.PresetsTests$PresetFactory"/>
-    </dynamic-preset>      
-
-    <static-preset id="pt_static_extending_dynamic_preset_1" extends="pt_dyn_preset">
-      <label>Static Extending Dynamic Preset</label>
-      <description>This is the static-dynamic description.</description>
-      <facet id="facet2" version="3.5#a"/>
-      <facet id="facet3b" version="1.0"/>
-    </static-preset>
-
-    <static-preset id="pt_static_extending_dynamic_preset_2" extends="pt_static_extending_dynamic_preset_1">
-      <label>Static Extending Dynamic Preset 2</label>
-      <description>This is the static-dynamic description 2.</description>
-      <facet id="facet1" version="1.2.1"/>
-      <facet id="facet3a" version="1.0"/>
-    </static-preset>
-
-    <!-- References facet that doesn't exist. -->
-    
-    <static-preset id="pt_bad.preset1">
-      <facet id="abc" version="1.0"/>
-    </static-preset>
-
-    <!-- References facet version that doesn't exist. -->
-    
-    <static-preset id="pt_bad.preset2">
-      <facet id="facet2" version="99.98"/>
-    </static-preset>
-
-    <!-- References base preset that doesn't exist. -->
-    
-    <static-preset id="pt_bad.preset3" extends="does.not.exist">
-      <facet id="facet2" version="3.5#a"/>
-    </static-preset>
-    
-    <!-- The following four presets form a cycle. -->
-    
-    <static-preset id="pt_cycle_preset1" extends="pt_cycle_preset3">
-      <facet id="facet1" version="1.2.1"/>
-    </static-preset>
-    
-    <static-preset id="pt_cycle_preset2" extends="pt_cycle_preset1">
-      <facet id="facet1" version="1.2.1"/>
-    </static-preset>
-
-    <static-preset id="pt_cycle_preset3" extends="pt_cycle_preset2">
-      <facet id="facet1" version="1.2.1"/>
-    </static-preset>
-
-    <static-preset id="pt_cycle_preset4" extends="pt_cycle_preset3">
-      <facet id="facet1" version="1.2.1"/>
-    </static-preset>
-    
-  </extension>  
-
-  <!-- Facet Constraint Tests -->
-  
-  <extension point="org.eclipse.wst.common.project.facet.core.facets">
-  
-    <project-facet id="fct_f1"/>
-    
-    <project-facet-version facet="fct_f1" version="1.0">
-      <constraint>
-        <conflicts facet="fct_f2"/>
-      </constraint>
-    </project-facet-version>
-    
-    <project-facet id="fct_f2"/>
-    
-    <project-facet-version facet="fct_f2" version="1.0">
-      <constraint>
-        <conflicts facet="fct_f4"/>
-      </constraint>
-    </project-facet-version>
-  
-    <project-facet id="fct_f3"/>
-    
-    <project-facet-version facet="fct_f3" version="1.0">
-      <constraint>
-        <requires facet="fct_f2" version="1.0"/>
-      </constraint>
-    </project-facet-version>
-
-    <project-facet id="fct_f4"/>
-    
-    <project-facet-version facet="fct_f4" version="1.0">
-    </project-facet-version>
-  
-    <project-facet id="fct_f5"/>
-    
-    <project-facet-version facet="fct_f5" version="1.0">
-      <constraint>
-        <requires facet="fct_f2" version="1.0" soft="true"/>
-      </constraint>
-    </project-facet-version>
-
-    <project-facet id="fct_f6"/>
-    
-    <project-facet-version facet="fct_f6" version="1.0"/>
-    <project-facet-version facet="fct_f6" version="2.3"/>
-    <project-facet-version facet="fct_f6" version="3.7"/>
-    <project-facet-version facet="fct_f6" version="4.0"/>
-    <project-facet-version facet="fct_f6" version="4.5"/>
-    
-    <project-facet id="fct_f7"/>
-    
-    <project-facet-version facet="fct_f7" version="1.0">
-      <constraint>
-        <requires facet="fct_f6"/>
-      </constraint>
-      <action type="INSTALL">
-        <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-      </action>
-    </project-facet-version>
-
-    <project-facet-version facet="fct_f7" version="2.0">
-      <constraint>
-        <requires facet="fct_f6" version="[5.0-6.5)"/>
-      </constraint>
-      <action type="INSTALL">
-        <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-      </action>
-    </project-facet-version>
-    
-    <project-facet id="fct_f8"/>
-    
-    <project-facet-version facet="fct_f8" version="1.0">
-      <group-member id="fct_g1"/>
-      <action type="INSTALL">
-        <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-      </action>
-    </project-facet-version>
-          
-    <project-facet-version facet="fct_f8" version="2.0">
-      <group-member id="fct_g1"/>
-      <action type="INSTALL">
-        <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-      </action>
-    </project-facet-version>
-    
-    <project-facet-version facet="fct_f8" version="3.0">
-      <action type="INSTALL">
-        <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-      </action>
-    </project-facet-version>
-    
-    <project-facet id="fct_f9"/>
-    
-    <project-facet-version facet="fct_f9" version="1.0">
-      <group-member id="fct_g1"/>
-      <action type="INSTALL">
-        <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-      </action>
-    </project-facet-version>
-    
-    <project-facet id="fct_f10"/>
-
-    <project-facet-version facet="fct_f10" version="1.0">
-      <constraint>
-        <requires group="fct_g1"/>
-      </constraint>
-      <action type="INSTALL">
-        <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-      </action>
-    </project-facet-version>
-
-    <project-facet-version facet="fct_f10" version="2.0">
-      <constraint>
-        <requires group="fct_g1" soft="true"/>
-      </constraint>
-      <action type="INSTALL">
-        <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-      </action>
-    </project-facet-version>
-    
-    <group id="fct_g1">
-      <label>FCT Group 1</label>
-      <description>This is the description.</description>
-    </group>
-
-  </extension>
-
-  <!-- Default Version Tests -->
-  
-  <extension point="org.eclipse.wst.common.project.facet.core.facets">
-  
-    <project-facet id="dvt_f1"/>
-    
-    <project-facet-version facet="dvt_f1" version="1.0"/>
-    <project-facet-version facet="dvt_f1" version="2.0"/>
-    <project-facet-version facet="dvt_f1" version="3.0"/>
-    <project-facet-version facet="dvt_f1" version="4.0"/>
-
-    <project-facet id="dvt_f2">
-      <default-version version="2.0"/>
-    </project-facet>
-    
-    <project-facet-version facet="dvt_f2" version="1.0"/>
-    <project-facet-version facet="dvt_f2" version="2.0"/>
-    <project-facet-version facet="dvt_f2" version="3.0"/>
-    <project-facet-version facet="dvt_f2" version="4.0"/>
-
-    <project-facet id="dvt_f3">
-      <default-version provider="org.eclipse.wst.common.project.facet.core.tests.DefaultVersionTests$FacetDvtF3DefaultVersionProvider"/>
-    </project-facet>
-    
-    <project-facet-version facet="dvt_f3" version="1.0"/>
-    <project-facet-version facet="dvt_f3" version="2.0"/>
-    <project-facet-version facet="dvt_f3" version="3.0"/>
-    <project-facet-version facet="dvt_f3" version="4.0"/>
-
-    <project-facet id="dvt_f4">
-      <default-version provider="org.eclipse.wst.common.project.facet.core.tests.DefaultVersionTests$FacetDvtF3DefaultVersionProvider"/>
-    </project-facet>
-    
-    <project-facet-version facet="dvt_f4" version="1.0"/>
-    <project-facet-version facet="dvt_f4" version="2.0"/>
-    <project-facet-version facet="dvt_f4" version="3.0"/>
-    <project-facet-version facet="dvt_f4" version="4.0"/>
-
-    <project-facet id="dvt_f5">
-      <default-version provider="org.eclipse.wst.common.project.facet.core.tests.DefaultVersionTests$FacetDvtF5DefaultVersionProvider"/>
-    </project-facet>
-    
-    <project-facet-version facet="dvt_f5" version="1.0"/>
-    <project-facet-version facet="dvt_f5" version="2.0"/>
-    <project-facet-version facet="dvt_f5" version="3.0"/>
-    <project-facet-version facet="dvt_f5" version="4.0"/>
-
-    <project-facet id="dvt_f6">
-      <default-version provider="org.eclipse.wst.common.project.facet.core.tests.DefaultVersionTests$FacetDvtF6DefaultVersionProvider"/>
-    </project-facet>
-    
-    <project-facet-version facet="dvt_f6" version="1.0"/>
-    <project-facet-version facet="dvt_f6" version="2.0"/>
-    <project-facet-version facet="dvt_f6" version="3.0"/>
-    <project-facet-version facet="dvt_f6" version="4.0"/>
-
-    <project-facet id="dvt_f7">
-      <default-version version="5.0"/>
-    </project-facet>
-    
-    <project-facet-version facet="dvt_f7" version="1.0"/>
-    <project-facet-version facet="dvt_f7" version="2.0"/>
-    <project-facet-version facet="dvt_f7" version="3.0"/>
-    <project-facet-version facet="dvt_f7" version="4.0"/>
-
-  </extension>
-
-  <!-- FacetActionExecutionTests -->
-  
-  <extension point="org.eclipse.wst.common.project.facet.core.facets">
-  
-    <project-facet id="fat_f1"/>
-    
-    <project-facet-version facet="fat_f1" version="1.0">
-      <action type="INSTALL">
-        <delegate class="org.eclipse.wst.common.project.facet.core.tests.FacetActionsTests$F1v1InstallDelegate"/>
-      </action>
-    </project-facet-version>
-    
-    <project-facet-version facet="fat_f1" version="2.0">
-      <action type="INSTALL">
-        <delegate class="org.eclipse.wst.common.project.facet.core.tests.FacetActionsTests$F1v2InstallDelegate"/>
-      </action>
-    </project-facet-version>
-    
-  </extension>
-  
-  <!-- UI Tests -->
-  
-  <extension point="org.eclipse.wst.common.project.facet.core.facets">
-  
-    <project-facet id="ui_long_label1">
-      <label>This facet has a really really rather long label</label>
-      <description>And a short description.</description>
-    </project-facet> 
-  
-    <project-facet-version facet="ui_long_label1" version="1.0">
-      <action type="INSTALL">
-        <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-      </action>
-    </project-facet-version>
-
-    <category id="ui_long_label_category">
-      <label>Category for facets with long labels</label>
-    </category>
-
-    <project-facet id="ui_long_label2">
-      <label>This facet has a really really rather long label</label>
-      <member category="ui_long_label_category"/>
-    </project-facet> 
-  
-    <project-facet-version facet="ui_long_label2" version="1.2.3.4.5.6.7.8.9">
-      <action type="INSTALL">
-        <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-      </action>
-    </project-facet-version>
-
-    <project-facet-version facet="ui_long_label2" version="9.8.7.6.5.4.3.2.1">
-      <action type="INSTALL">
-        <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-      </action>
-    </project-facet-version>
-    
-  </extension>
-  
-  <!-- EventDeliveryTests -->
-  
-  <extension point="org.eclipse.wst.common.project.facet.core.facets">
-  
-    <project-facet id="edt_f1"/>
-    <project-facet-version facet="edt_f1" version="1.0"/>
-    <project-facet-version facet="edt_f1" version="2.0"/>
-    <action facet="edt_f1" type="INSTALL">
-      <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-    </action>
-    <action facet="edt_f1" type="UNINSTALL">
-      <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-    </action>
-    <action facet="edt_f1" type="VERSION_CHANGE">
-      <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-    </action>
-
-    <project-facet id="edt_f2"/>
-    <project-facet-version facet="edt_f2" version="1.1"/>
-    <project-facet-version facet="edt_f2" version="2.1"/>
-    <action facet="edt_f2" type="INSTALL">
-      <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-    </action>
-    <action facet="edt_f2" type="UNINSTALL">
-      <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-    </action>
-    <action facet="edt_f2" type="VERSION_CHANGE">
-      <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-    </action>
-    
-    <project-facet id="edt_f3"/>
-    <project-facet-version facet="edt_f3" version="1.2"/>
-    <project-facet-version facet="edt_f3" version="2.2"/>
-    <action facet="edt_f3" type="INSTALL">
-      <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-    </action>
-    <action facet="edt_f3" type="UNINSTALL">
-      <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-    </action>
-    <action facet="edt_f3" type="VERSION_CHANGE">
-      <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-    </action>
-
-    <project-facet id="edt_f4"/>
-    <project-facet-version facet="edt_f4" version="1.3"/>
-    <project-facet-version facet="edt_f4" version="2.3"/>
-    <action facet="edt_f4" type="INSTALL">
-      <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-    </action>
-    <action facet="edt_f4" type="UNINSTALL">
-      <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-    </action>
-    <action facet="edt_f4" type="VERSION_CHANGE">
-      <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-    </action>
-    
-  </extension>
-  
-  <extension point="org.eclipse.wst.common.project.facet.core.listeners">
-    <listener 
-      class="org.eclipse.wst.common.project.facet.core.tests.EventDeliveryTests$FullExtensionBasedListener"/>
-    <listener 
-      class="org.eclipse.wst.common.project.facet.core.tests.EventDeliveryTests$PartialExtensionBasedListener"
-      eventTypes="PRE_INSTALL,FIXED_FACETS_CHANGED"/>
-  </extension>
-
-  <!-- ProjectCreationTests -->
-  
-  <extension point="org.eclipse.wst.common.project.facet.core.facets">
-  
-    <project-facet id="pct-f1"/>
-    <project-facet-version facet="pct-f1" version="1.0"/>
-    <action facet="pct-f1" type="INSTALL">
-      <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-    </action>
-
-    <project-facet id="pct-f2"/>
-    <project-facet-version facet="pct-f2" version="1.0"/>
-    <project-facet-version facet="pct-f2" version="2.0"/>
-    <action facet="pct-f2" type="INSTALL">
-      <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-    </action>
-
-  </extension>
-  
-</plugin>
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/resources/EventDeliveryTests.testEventsAtProjectCreation3/.project b/tests/org.eclipse.wst.common.project.facet.core.tests/resources/EventDeliveryTests.testEventsAtProjectCreation3/.project
deleted file mode 100644
index d53b033..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/resources/EventDeliveryTests.testEventsAtProjectCreation3/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>testEventsAtProjectCreation3</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.wst.common.project.facet.core.builder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
-	</natures>
-</projectDescription>
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/resources/EventDeliveryTests.testEventsAtProjectCreation3/.settings/org.eclipse.wst.common.project.facet.core.xml b/tests/org.eclipse.wst.common.project.facet.core.tests/resources/EventDeliveryTests.testEventsAtProjectCreation3/.settings/org.eclipse.wst.common.project.facet.core.xml
deleted file mode 100644
index 2ccc526..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/resources/EventDeliveryTests.testEventsAtProjectCreation3/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<faceted-project>
-  <installed facet="edt_f1" version="1.0"/>
-  <installed facet="edt_f2" version="1.1"/>
-</faceted-project>
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/AbstractTests.java b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/AbstractTests.java
deleted file mode 100644
index b79703f..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/AbstractTests.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.tests;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public abstract class AbstractTests
-
-    extends TestCase
-    
-{
-    protected static final String DEFAULT_TEST_PROJECT_NAME = "testProject";
-    protected static final IWorkspace ws = ResourcesPlugin.getWorkspace();
-    protected final Set<IResource> resourcesToCleanup = new HashSet<IResource>();
-    protected final List<Runnable> tearDownOperations = new ArrayList<Runnable>();
-    
-    protected AbstractTests( final String name )
-    {
-        super( name );
-    }
-    
-    protected void tearDown()
-        
-        throws CoreException
-        
-    {
-        for( IResource r : this.resourcesToCleanup )
-        {
-            r.delete( true, null );
-        }
-        
-        for( Runnable runnable : this.tearDownOperations )
-        {
-            runnable.run();
-        }
-    }
-    
-    protected final void addResourceToCleanup( final IResource resource )
-    {
-        this.resourcesToCleanup.add( resource );
-    }
-    
-    protected final void addTearDownOperation( final Runnable runnable )
-    {
-        this.tearDownOperations.add( runnable );
-    }
-    
-    protected final IFacetedProject createFacetedProject()
-    
-        throws CoreException
-        
-    {
-        return createFacetedProject( DEFAULT_TEST_PROJECT_NAME );
-    }
-    
-    protected IFacetedProject createFacetedProject( final String name )
-
-        throws CoreException
-        
-    {
-        assertFalse( ws.getRoot().getProject( name ).exists() );
-        final IFacetedProject fpj = ProjectFacetsManager.create( name, null, null );
-        final IProject pj = fpj.getProject();
-        assertTrue( pj.exists() );
-        addResourceToCleanup( pj );
-        
-        return fpj;
-    }
-    
-}
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/AllTests.java b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/AllTests.java
deleted file mode 100644
index 3e115b6..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/AllTests.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.tests;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public class AllTests
-
-    extends TestCase
-    
-{
-    public static Test suite()
-    {
-        final TestSuite suite = new TestSuite();
-        
-        suite.setName( "All Faceted Project Framework Tests" );
-        
-        suite.addTest( BasicTests.suite() );
-        suite.addTest( PresetsTests.suite() );
-        suite.addTest( ProjectCreationTests.suite() );
-        suite.addTest( BasicFacetActionTests.suite() );
-        suite.addTest( FacetActionSortTests.suite() );
-        suite.addTest( FacetActionsTests.suite() );
-        suite.addTest( ProjectChangeReactionTests.suite() );
-        suite.addTest( FacetConstraintsTests.suite() );
-        suite.addTest( DefaultVersionTests.suite() );
-        suite.addTest( EventDeliveryTests.suite() );
-        
-        return suite;
-    }
-
-}
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/BasicFacetActionTests.java b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/BasicFacetActionTests.java
deleted file mode 100644
index 7dce648..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/BasicFacetActionTests.java
+++ /dev/null
@@ -1,251 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.tests;
-
-import java.io.IOException;
-import java.util.Collections;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject.Action;
-import org.eclipse.wst.common.project.facet.core.tests.support.TestUtils;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public class BasicFacetActionTests
-
-    extends TestCase
-    
-{
-    private static final String TEST_PROJECT_NAME = "testProject";
-    private static final IWorkspace ws = ResourcesPlugin.getWorkspace();
-    
-    private static final IFile facet1ArtifactFile
-        = ws.getRoot().getProject( TEST_PROJECT_NAME ).getFile( "facet1.txt" );
-    
-    private static IProjectFacet f1;
-    private static IProjectFacetVersion f1v10;
-    private static IProjectFacetVersion f1v12;
-    private static IProjectFacetVersion f1v121;
-    private static IProjectFacetVersion f1v13;
-    private static IProjectFacetVersion f1v20;
-
-    static
-    {
-        try
-        {
-            f1 = ProjectFacetsManager.getProjectFacet( "facet1" );
-            f1v10 = f1.getVersion( "1.0" );
-            f1v12 = f1.getVersion( "1.2" );
-            f1v121 = f1.getVersion( "1.2.1" );
-            f1v13 = f1.getVersion( "1.3" );
-            f1v20 = f1.getVersion( "2.0" );
-        }
-        catch( Exception e )
-        {
-            // Ignore failures. This api is tested explicitly.
-        }
-    }
-    
-    private IFacetedProject fpj;
-    
-    private BasicFacetActionTests( final String name )
-    {
-        super( name );
-    }
-    
-    public static Test suite()
-    {
-        final TestSuite suite = new TestSuite();
-        
-        suite.setName( "Basic Facet Action Tests" );
-
-        suite.addTest( new BasicFacetActionTests( "testFacetInstall1" ) );
-        suite.addTest( new BasicFacetActionTests( "testFacetInstall2" ) );
-        suite.addTest( new BasicFacetActionTests( "testFacetInstall3" ) );
-        suite.addTest( new BasicFacetActionTests( "testFacetUninstall1" ) );
-        suite.addTest( new BasicFacetActionTests( "testFacetUninstall2" ) );
-        suite.addTest( new BasicFacetActionTests( "testFacetUninstall3" ) );
-        suite.addTest( new BasicFacetActionTests( "testFacetVersionChange1" ) );
-        suite.addTest( new BasicFacetActionTests( "testFacetVersionChange2" ) );
-        suite.addTest( new BasicFacetActionTests( "testActionSeries" ) );
-        
-        return suite;
-    }
-    
-    protected void setUp()
-    
-        throws CoreException
-        
-    {
-        assertFalse( ws.getRoot().getProject( TEST_PROJECT_NAME ).exists() );
-        this.fpj = ProjectFacetsManager.create( TEST_PROJECT_NAME, null, null );
-        assertTrue( fpj.getProject().exists() );
-    }
-    
-    protected void tearDown()
-    
-        throws CoreException
-        
-    {
-        this.fpj.getProject().delete( true, null );
-    }
-    
-    public void testFacetInstall1()
-    
-        throws CoreException, IOException
-        
-    {
-        this.fpj.installProjectFacet( f1v10, null, null );
-        TestUtils.assertEquals( facet1ArtifactFile, f1v10.getVersionString() );
-    }
-    
-    public void testFacetInstall2()
-    
-        throws CoreException, IOException
-        
-    {
-        this.fpj.installProjectFacet( f1v121, null, null );
-        TestUtils.assertEquals( facet1ArtifactFile, f1v121.getVersionString() );
-    }
-    
-    public void testFacetInstall3()
-    
-        throws CoreException, IOException
-        
-    {
-        final Action action = new Action( Action.Type.INSTALL, f1v20, null );
-        this.fpj.modify( Collections.singleton( action ), null );
-        TestUtils.assertEquals( facet1ArtifactFile, f1v20.getVersionString() );
-    }
-    
-    public void testFacetUninstall1()
-    
-        throws CoreException, IOException
-        
-    {
-        this.fpj.installProjectFacet( f1v10, null, null );
-        this.fpj.uninstallProjectFacet( f1v10, null, null );
-        assertFalse( facet1ArtifactFile.exists() );
-    }
-
-    public void testFacetUninstall2()
-    
-        throws CoreException, IOException
-        
-    {
-        this.fpj.installProjectFacet( f1v121, null, null );
-        this.fpj.uninstallProjectFacet( f1v121, null, null );
-        assertFalse( facet1ArtifactFile.exists() );
-    }
-
-    public void testFacetUninstall3()
-    
-        throws CoreException, IOException
-        
-    {
-        this.fpj.installProjectFacet( f1v20, null, null );
-        this.fpj.uninstallProjectFacet( f1v20, null, null );
-        assertFalse( facet1ArtifactFile.exists() );
-    }
-    
-    public void testFacetVersionChange1()
-    
-        throws CoreException, IOException
-        
-    {
-        this.fpj.installProjectFacet( f1v10, null, null );
-        final Action action = new Action( Action.Type.VERSION_CHANGE, f1v121, null );
-        this.fpj.modify( Collections.singleton( action ), null );
-        TestUtils.assertEquals( facet1ArtifactFile, f1v121.getVersionString() );
-    }
-
-    public void testFacetVersionChange2()
-    
-        throws CoreException, IOException
-        
-    {
-        this.fpj.installProjectFacet( f1v13, null, null );
-        final Action action = new Action( Action.Type.VERSION_CHANGE, f1v12, null );
-        this.fpj.modify( Collections.singleton( action ), null );
-        TestUtils.assertEquals( facet1ArtifactFile, f1v12.getVersionString() );
-    }
-    
-    public void testActionSeries()
-    
-        throws CoreException, IOException
-    
-    {
-        Action action;
-        
-        action = new Action( Action.Type.INSTALL, f1v10, null );
-        this.fpj.modify( Collections.singleton( action ), null );
-        TestUtils.assertEquals( facet1ArtifactFile, f1v10.getVersionString() );
-        
-        action = new Action( Action.Type.VERSION_CHANGE, f1v12, null );
-        this.fpj.modify( Collections.singleton( action ), null );
-        TestUtils.assertEquals( facet1ArtifactFile, f1v12.getVersionString() );
-
-        action = new Action( Action.Type.VERSION_CHANGE, f1v121, null );
-        this.fpj.modify( Collections.singleton( action ), null );
-        TestUtils.assertEquals( facet1ArtifactFile, f1v121.getVersionString() );
-
-        action = new Action( Action.Type.VERSION_CHANGE, f1v13, null );
-        this.fpj.modify( Collections.singleton( action ), null );
-        TestUtils.assertEquals( facet1ArtifactFile, f1v13.getVersionString() );
-        
-        action = new Action( Action.Type.VERSION_CHANGE, f1v20, null );
-        this.fpj.modify( Collections.singleton( action ), null );
-        TestUtils.assertEquals( facet1ArtifactFile, f1v20.getVersionString() );
-        
-        action = new Action( Action.Type.UNINSTALL, f1v20, null );
-        this.fpj.modify( Collections.singleton( action ), null );
-        assertFalse( facet1ArtifactFile.exists() );
-
-        action = new Action( Action.Type.INSTALL, f1v12, null );
-        this.fpj.modify( Collections.singleton( action ), null );
-        TestUtils.assertEquals( facet1ArtifactFile, f1v12.getVersionString() );
-        
-        action = new Action( Action.Type.VERSION_CHANGE, f1v13, null );
-        this.fpj.modify( Collections.singleton( action ), null );
-        TestUtils.assertEquals( facet1ArtifactFile, f1v13.getVersionString() );
-        
-        action = new Action( Action.Type.VERSION_CHANGE, f1v10, null );
-        this.fpj.modify( Collections.singleton( action ), null );
-        TestUtils.assertEquals( facet1ArtifactFile, f1v10.getVersionString() );
-        
-        action = new Action( Action.Type.VERSION_CHANGE, f1v20, null );
-        this.fpj.modify( Collections.singleton( action ), null );
-        TestUtils.assertEquals( facet1ArtifactFile, f1v20.getVersionString() );
-        
-        action = new Action( Action.Type.VERSION_CHANGE, f1v121, null );
-        this.fpj.modify( Collections.singleton( action ), null );
-        TestUtils.assertEquals( facet1ArtifactFile, f1v121.getVersionString() );
-        
-        action = new Action( Action.Type.UNINSTALL, f1v121, null );
-        this.fpj.modify( Collections.singleton( action ), null );
-        assertFalse( facet1ArtifactFile.exists() );
-    }
-    
-}
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/BasicTests.java b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/BasicTests.java
deleted file mode 100644
index a07769a..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/BasicTests.java
+++ /dev/null
@@ -1,672 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.tests;
-
-import static org.eclipse.wst.common.project.facet.core.tests.support.TestUtils.asSet;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.common.project.facet.core.ICategory;
-import org.eclipse.wst.common.project.facet.core.IConstraint;
-import org.eclipse.wst.common.project.facet.core.IGroup;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class BasicTests
-
-    extends TestCase
-    
-{
-    private static final String PLUGIN_ID 
-        = "org.eclipse.wst.common.project.facet.core.tests";
-    
-    public static IProjectFacet f1;
-    public static IProjectFacetVersion f1v10;
-    public static IProjectFacetVersion f1v12;
-    public static IProjectFacetVersion f1v121;
-    public static IProjectFacetVersion f1v13;
-    public static IProjectFacetVersion f1v20;
-    
-    public static IProjectFacet f2;
-    public static IProjectFacetVersion f2v35;
-    public static IProjectFacetVersion f2v35a;
-    public static IProjectFacetVersion f2v47;
-    public static IProjectFacetVersion f2v47b;
-    public static IProjectFacetVersion f2v47c;
-    
-    public static IProjectFacet f2ext;
-    public static IProjectFacetVersion f2extv10;
-
-    public static IProjectFacet f3a;
-    public static IProjectFacetVersion f3av10;
-    public static IProjectFacetVersion f3av20;
-
-    public static IProjectFacet f3b;
-    public static IProjectFacetVersion f3bv10;
-    public static IProjectFacetVersion f3bv20;
-
-    public static IProjectFacet f3c;
-    public static IProjectFacetVersion f3cv10;
-    public static IProjectFacetVersion f3cv20;
-
-    static
-    {
-        try
-        {
-            f1 = ProjectFacetsManager.getProjectFacet( "facet1" );
-            f1v10 = f1.getVersion( "1.0" );
-            f1v12 = f1.getVersion( "1.2" );
-            f1v121 = f1.getVersion( "1.2.1" );
-            f1v13 = f1.getVersion( "1.3" );
-            f1v20 = f1.getVersion( "2.0" );
-            
-            f2 = ProjectFacetsManager.getProjectFacet( "facet2" );
-            f2v35 = f2.getVersion( "3.5" );
-            f2v35a = f2.getVersion( "3.5#a" );
-            f2v47 = f2.getVersion( "4.7" );
-            f2v47b = f2.getVersion( "4.7#b" );
-            f2v47c = f2.getVersion( "4.7#c" );
-            
-            f2ext = ProjectFacetsManager.getProjectFacet( "facet2ext" );
-            f2extv10 = f2ext.getVersion( "1.0" );
-
-            f3a = ProjectFacetsManager.getProjectFacet( "facet3a" );
-            f3av10 = f3a.getVersion( "1.0" );
-            f3av20 = f3a.getVersion( "2.0" );
-
-            f3b = ProjectFacetsManager.getProjectFacet( "facet3b" );
-            f3bv10 = f3b.getVersion( "1.0" );
-            f3bv20 = f3b.getVersion( "2.0" );
-
-            f3c = ProjectFacetsManager.getProjectFacet( "facet3c" );
-            f3cv10 = f3c.getVersion( "1.0" );
-            f3cv20 = f3c.getVersion( "2.0" );
-        }
-        catch( Exception e )
-        {
-            // Ignore failures. This api is tested explicitly.
-        }
-    }
-    
-    private BasicTests( final String name )
-    {
-        super( name );
-    }
-    
-    public static Test suite()
-    {
-        final TestSuite suite = new TestSuite();
-        
-        suite.setName( "Basic Tests" );
-
-        suite.addTest( new BasicTests( "testProjectFacetExtensionPoint" ) );
-        suite.addTest( new BasicTests( "testProjectFacetVersionExtensionPoint" ) );
-        suite.addTest( new BasicTests( "testCategoryExtensionPoint" ) );
-        suite.addTest( new BasicTests( "testDefaultVersionComparator" ) );
-        suite.addTest( new BasicTests( "testCustomVersionComparator" ) );
-        suite.addTest( new BasicTests( "testVersionExpressions" ) );
-        suite.addTest( new BasicTests( "testVersionExpressionsWithUnknownVersions" ) );
-        suite.addTest( new BasicTests( "testConstraints" ) );
-        suite.addTest( new BasicTests( "testConstraintApi" ) );
-        
-        return suite;
-    }
-    
-    public void testProjectFacetExtensionPoint()
-    {
-        assertTrue( ProjectFacetsManager.isProjectFacetDefined( "facet1" ) );
-        final IProjectFacet f1 = ProjectFacetsManager.getProjectFacet( "facet1" );
-        assertTrue( ProjectFacetsManager.getProjectFacets().contains( f1 ) );
-        
-        assertEquals( f1.getId(), "facet1" );
-        assertEquals( f1.getLabel(), "Facet 1" );
-        assertEquals( f1.getDescription(), "This is the description of facet1." );
-        assertEquals( f1.getPluginId(), PLUGIN_ID );
-        
-        assertTrue( ProjectFacetsManager.isProjectFacetDefined( "facet2" ) );
-        final IProjectFacet f2 = ProjectFacetsManager.getProjectFacet( "facet2" );
-        assertTrue( ProjectFacetsManager.getProjectFacets().contains( f2 ) );
-        
-        assertEquals( f2.getId(), "facet2" );
-        assertEquals( f2.getLabel(), "facet2" );
-        assertEquals( f2.getDescription(), "" );
-        assertEquals( f2.getPluginId(), PLUGIN_ID );
-    }
-    
-    public void testProjectFacetVersionExtensionPoint()
-    {
-        assertTrue( f1.hasVersion( "1.0" ) );
-        final IProjectFacetVersion f1v10 = f1.getVersion( "1.0" );
-        assertEquals( f1v10.getVersionString(), "1.0" );
-        assertEquals( f1v10.getProjectFacet(), f1 );
-        assertEquals( f1v10.getPluginId(), PLUGIN_ID );
-
-        assertTrue( f1.hasVersion( "1.2" ) );
-        final IProjectFacetVersion f1v12 = f1.getVersion( "1.2" );
-        assertEquals( f1v12.getVersionString(), "1.2" );
-        assertEquals( f1v12.getProjectFacet(), f1 );
-        assertEquals( f1v12.getPluginId(), PLUGIN_ID );
-
-        assertTrue( f1.hasVersion( "1.2.1" ) );
-        final IProjectFacetVersion f1v121 = f1.getVersion( "1.2.1" );
-        assertEquals( f1v121.getVersionString(), "1.2.1" );
-        assertEquals( f1v121.getProjectFacet(), f1 );
-        assertEquals( f1v121.getPluginId(), PLUGIN_ID );
-
-        assertTrue( f1.hasVersion( "1.3" ) );
-        final IProjectFacetVersion f1v13 = f1.getVersion( "1.3" );
-        assertEquals( f1v13.getVersionString(), "1.3" );
-        assertEquals( f1v13.getProjectFacet(), f1 );
-        assertEquals( f1v13.getPluginId(), PLUGIN_ID );
-
-        assertTrue( f1.hasVersion( "2.0" ) );
-        final IProjectFacetVersion f1v20 = f1.getVersion( "2.0" );
-        assertEquals( f1v20.getVersionString(), "2.0" );
-        assertEquals( f1v20.getProjectFacet(), f1 );
-        assertEquals( f1v20.getPluginId(), PLUGIN_ID );
-        
-        assertEquals( f1.getVersions(),
-                      asSet( f1v10, f1v12, f1v121, f1v13, f1v20 ) );
-
-        assertTrue( f2.hasVersion( "3.5" ) );
-        final IProjectFacetVersion f2v35 = f2.getVersion( "3.5" );
-        assertEquals( f2v35.getVersionString(), "3.5" );
-        assertEquals( f2v35.getProjectFacet(), f2 );
-        assertEquals( f2v35.getPluginId(), PLUGIN_ID );
-
-        assertTrue( f2.hasVersion( "3.5#a" ) );
-        final IProjectFacetVersion f2v35a = f2.getVersion( "3.5#a" );
-        assertEquals( f2v35a.getVersionString(), "3.5#a" );
-        assertEquals( f2v35a.getProjectFacet(), f2 );
-        assertEquals( f2v35a.getPluginId(), PLUGIN_ID );
-        
-        assertTrue( f2.hasVersion( "4.7" ) );
-        final IProjectFacetVersion f2v47 = f2.getVersion( "4.7" );
-        assertEquals( f2v47.getVersionString(), "4.7" );
-        assertEquals( f2v47.getProjectFacet(), f2 );
-        assertEquals( f2v47.getPluginId(), PLUGIN_ID );
-
-        assertTrue( f2.hasVersion( "4.7#b" ) );
-        final IProjectFacetVersion f2v47b = f2.getVersion( "4.7#b" );
-        assertEquals( f2v47b.getVersionString(), "4.7#b" );
-        assertEquals( f2v47b.getProjectFacet(), f2 );
-        assertEquals( f2v47b.getPluginId(), PLUGIN_ID );
-
-        assertTrue( f2.hasVersion( "4.7#c" ) );
-        final IProjectFacetVersion f2v47c = f2.getVersion( "4.7#c" );
-        assertEquals( f2v47c.getVersionString(), "4.7#c" );
-        assertEquals( f2v47c.getProjectFacet(), f2 );
-        assertEquals( f2v47c.getPluginId(), PLUGIN_ID );
-        
-        assertEquals( f2.getVersions(), 
-                      asSet( f2v35, f2v35a, f2v47, f2v47b, f2v47c ) );
-        
-        // Check for version that doesn't exist.
-        
-        assertFalse( f2.hasVersion( "6.9" ) );
-        
-        try
-        {
-            f2.getVersion( "6.9" );
-            fail();
-        }
-        catch( IllegalArgumentException e ) {}
-    }
-    
-    public void testCategoryExtensionPoint()
-    {
-        assertTrue( ProjectFacetsManager.isCategoryDefined( "cat1" ) );
-        final ICategory cat1 = ProjectFacetsManager.getCategory( "cat1" );
-        assertTrue( ProjectFacetsManager.getCategories().contains( cat1 ) );
-        
-        assertEquals( cat1.getId(), "cat1" );
-        assertEquals( cat1.getLabel(), "Category 1" );
-        assertEquals( cat1.getDescription(), "This is the category description." );
-        assertEquals( cat1.getPluginId(), PLUGIN_ID );
-
-        assertEquals( cat1.getProjectFacets(), asSet( f2, f2ext ) );
-        assertEquals( f2.getCategory(), cat1 );
-        assertEquals( f2ext.getCategory(), cat1 );
-        
-        assertTrue( ProjectFacetsManager.isCategoryDefined( "cat2" ) );
-        final ICategory cat2 = ProjectFacetsManager.getCategory( "cat2" );
-        assertTrue( ProjectFacetsManager.getCategories().contains( cat2 ) );
-        
-        assertEquals( cat2.getId(), "cat2" );
-        assertEquals( cat2.getLabel(), "cat2" );
-        assertEquals( cat2.getDescription(), "" );
-        assertEquals( cat2.getPluginId(), PLUGIN_ID );
-        
-        assertEquals( cat2.getProjectFacets(), asSet( f3a, f3b, f3c ) );
-        assertEquals( f3a.getCategory(), cat2 );
-        assertEquals( f3b.getCategory(), cat2 );
-        assertEquals( f3c.getCategory(), cat2 );
-    }
-    
-    @SuppressWarnings( "unchecked" )
-    public void testDefaultVersionComparator()
-    
-        throws CoreException
-        
-    {
-        final Comparator<String> comp = f1.getVersionComparator();
-        
-        assertEquals( comp.getClass().getName(), 
-                      "org.eclipse.wst.common.project.facet.core.DefaultVersionComparator" );
-        
-        assertTrue( comp.compare( "1.0", "1.2" ) < 0 );
-        assertTrue( comp.compare( "1.2", "1.2.1" ) < 0 );
-        assertTrue( comp.compare( "1.2.1", "2.0" ) < 0 );
-        
-        assertTrue( comp.compare( "1.2", "1.0" ) > 0 );
-        assertTrue( comp.compare( "1.2.1", "1.2" ) > 0 );
-        assertTrue( comp.compare( "2.0", "1.2.1" ) > 0 );
-        
-        assertTrue( comp.compare( "1.0", "1.0" ) == 0 );
-        assertTrue( comp.compare( "1.2", "1.2" ) == 0 );
-        assertTrue( comp.compare( "1.2.1", "1.2.1" ) == 0 );
-        assertTrue( comp.compare( "2.0", "2.0" ) == 0 );
-        
-        assertTrue( f1v10.compareTo( f1v12 ) < 0 );
-        assertTrue( f1v12.compareTo( f1v121 ) < 0 );
-        assertTrue( f1v121.compareTo( f1v20 ) < 0 );
-        
-        assertTrue( f1v12.compareTo( f1v10 ) > 0 );
-        assertTrue( f1v121.compareTo( f1v12 ) > 0 );
-        assertTrue( f1v20.compareTo( f1v121 ) > 0 );
-        
-        assertTrue( f1v10.compareTo( f1v10 ) == 0 );
-        assertTrue( f1v12.compareTo( f1v12 ) == 0 );
-        assertTrue( f1v121.compareTo( f1v121 ) == 0 );
-        assertTrue( f1v20.compareTo( f1v20 ) == 0 );
-
-        assertEquals( f1.getLatestVersion(), f1v20 );
-        
-        final List asc = f1.getSortedVersions( true );
-        
-        assertEquals( asc.size(), 5 );
-        assertEquals( asc.get( 0 ), f1v10 );
-        assertEquals( asc.get( 1 ), f1v12 );
-        assertEquals( asc.get( 2 ), f1v121 );
-        assertEquals( asc.get( 3 ), f1v13 );
-        assertEquals( asc.get( 4 ), f1v20 );
-        
-        final List desc = f1.getSortedVersions( false );
-        
-        assertEquals( desc.size(), 5 );
-        assertEquals( desc.get( 0 ), f1v20 );
-        assertEquals( desc.get( 1 ), f1v13 );
-        assertEquals( desc.get( 2 ), f1v121 );
-        assertEquals( desc.get( 3 ), f1v12 );
-        assertEquals( desc.get( 4 ), f1v10 );
-    }
-
-    @SuppressWarnings( "unchecked" )
-    public void testCustomVersionComparator()
-    
-        throws CoreException
-        
-    {
-        final Comparator<String> comp = f2.getVersionComparator();
-        
-        assertEquals( comp.getClass().getName(), 
-                      "org.eclipse.wst.common.project.facet.core.tests.support.CustomVersionComparator" );
-        
-        assertTrue( comp.compare( "3.5", "4.7" ) < 0 );
-        assertTrue( comp.compare( "3.5", "3.5#a" ) < 0 );
-        assertTrue( comp.compare( "4.7#c", "4.7#b" ) < 0 );
-        
-        assertTrue( comp.compare( "4.7", "3.5" ) > 0 );
-        assertTrue( comp.compare( "3.5#a", "3.5" ) > 0 );
-        assertTrue( comp.compare( "4.7#b", "4.7#c" ) > 0 );
-        
-        assertTrue( comp.compare( "3.5", "3.5" ) == 0 );
-        assertTrue( comp.compare( "3.5#a", "3.5#a" ) == 0 );
-        assertTrue( comp.compare( "4.7", "4.7" ) == 0 );
-        assertTrue( comp.compare( "4.7#b", "4.7#b" ) == 0 );
-
-        assertTrue( f2v35.compareTo( f2v47 ) < 0 );
-        assertTrue( f2v35.compareTo( f2v35a ) < 0 );
-        assertTrue( f2v47c.compareTo( f2v47b ) < 0 );
-        
-        assertTrue( f2v47.compareTo( f2v35 ) > 0 );
-        assertTrue( f2v35a.compareTo( f2v35 ) > 0 );
-        assertTrue( f2v47b.compareTo( f2v47c ) > 0 );
-        
-        assertTrue( f2v35.compareTo( f2v35 ) == 0 );
-        assertTrue( f2v35a.compareTo( f2v35a ) == 0 );
-        assertTrue( f2v47.compareTo( f2v47 ) == 0 );
-        assertTrue( f2v47b.compareTo( f2v47b ) == 0 );
-        
-        assertEquals( f2.getLatestVersion(), f2v47b );
-        
-        final List asc = f2.getSortedVersions( true );
-        
-        assertEquals( asc.size(), 5 );
-        assertEquals( asc.get( 0 ), f2v35 );
-        assertEquals( asc.get( 1 ), f2v35a );
-        assertEquals( asc.get( 2 ), f2v47 );
-        assertEquals( asc.get( 3 ), f2v47c );
-        assertEquals( asc.get( 4 ), f2v47b );
-        
-        final List desc = f2.getSortedVersions( false );
-        
-        assertEquals( desc.size(), 5 );
-        assertEquals( desc.get( 0 ), f2v47b );
-        assertEquals( desc.get( 1 ), f2v47c );
-        assertEquals( desc.get( 2 ), f2v47 );
-        assertEquals( desc.get( 3 ), f2v35a );
-        assertEquals( desc.get( 4 ), f2v35 );
-    }
-    
-    public void testVersionExpressions()
-    
-        throws CoreException
-        
-    {
-        assertEquals( f1.getVersions( "1.2" ), 
-                      asSet( f1v12 ) );
-        
-        assertEquals( f1.getVersions( "1.2,1.3" ), 
-                      asSet( f1v12, f1v13 ) );
-        
-        assertEquals( f1.getVersions( "1.0,1.2,1.2.1,1.3,2.0" ), 
-                      asSet( f1v10, f1v12, f1v121, f1v13, f1v20 ) );
-        
-        assertEquals( f1.getVersions( "[1.2" ),
-                      asSet( f1v12, f1v121, f1v13, f1v20 ) );
-        
-        assertEquals( f1.getVersions( "(1.2" ),
-                      asSet( f1v121, f1v13, f1v20 ) );
-        
-        assertEquals( f1.getVersions( "1.3]" ),
-                      asSet( f1v10, f1v12, f1v121, f1v13 ) );
-        
-        assertEquals( f1.getVersions( "1.3)" ),
-                      asSet( f1v10, f1v12, f1v121 ) );
-        
-        assertEquals( f1.getVersions( "[1.2-1.3]" ),
-                      asSet( f1v12, f1v121, f1v13 ) );
-        
-        assertEquals( f1.getVersions( "[1.2-1.3)" ),
-                      asSet( f1v12, f1v121 ) );
-        
-        assertEquals( f1.getVersions( "(1.2-1.3]" ),
-                      asSet( f1v121, f1v13 ) );
-        
-        assertEquals( f1.getVersions( "1.0,(1.2-1.3],2.0" ),
-                      asSet( f1v10, f1v121, f1v13, f1v20 ) );
-    }
-    
-    /**
-     * Tests the cases where version expressions make references to facet versions that don't
-     * actually exist.
-     * 
-     * @throws CoreException
-     */
-    
-    public void testVersionExpressionsWithUnknownVersions()
-    
-        throws CoreException
-        
-    {
-        assertEquals( f1.getVersions( "[0.5-1.2]" ), asSet( f1v10, f1v12 ) );
-        assertEquals( f1.getVersions( "[1.2.2-2.0]" ), asSet( f1v13, f1v20 ) );
-        assertEquals( f1.getVersions( "[0.5-10.0)" ), asSet( f1v10, f1v12, f1v121, f1v13, f1v20 ) );
-        assertEquals( f1.getVersions( "[10.0-25]" ), Collections.emptySet() );
-        assertEquals( f1.getVersions( "3.0,4.5" ), Collections.emptySet() );
-        assertEquals( f1.getVersions( "5.7" ), Collections.emptySet() );
-    }
-    
-    @SuppressWarnings( "unchecked" )
-    public void testConstraints()
-    {
-        /*
-         * Version: 3.5
-         * 
-         * <requires facet="facet1" version="1.0"/>
-         */ 
-
-        assertFalse( f2v35.getConstraint().check( Collections.EMPTY_SET ).isOK() );
-        assertTrue( f2v35.getConstraint().check( asSet( f1v10 ) ).isOK() );
-        assertFalse( f2v35.getConstraint().check( asSet( f1v12 ) ).isOK() );
-        assertFalse( f2v35.getConstraint().check( asSet( f1v121 ) ).isOK() );
-        assertFalse( f2v35.getConstraint().check( asSet( f1v13 ) ).isOK() );
-        assertFalse( f2v35.getConstraint().check( asSet( f1v20 ) ).isOK() );
-        
-        /*
-         * Version: 3.5#a
-         * 
-         * <and>
-         *   <requires facet="facet1" version="[1.2-1.3)"/>
-         * </and>
-         */
-        
-        assertFalse( f2v35a.getConstraint().check( Collections.EMPTY_SET  ).isOK() );
-        assertFalse( f2v35a.getConstraint().check( asSet( f1v10 ) ).isOK() );
-        assertTrue( f2v35a.getConstraint().check( asSet( f1v12 ) ).isOK() );
-        assertTrue( f2v35a.getConstraint().check( asSet( f1v121 ) ).isOK() );
-        assertFalse( f2v35a.getConstraint().check( asSet( f1v13 ) ).isOK() );
-        assertFalse( f2v35a.getConstraint().check( asSet( f1v20 ) ).isOK() );
-        
-        /*
-         * Version: 4.7
-         * 
-         * <or>
-         *   <requires facet="facet1" version="[1.3"/>
-         * </or>
-         */
-        
-        assertFalse( f2v47.getConstraint().check( Collections.EMPTY_SET  ).isOK() );
-        assertFalse( f2v47.getConstraint().check( asSet( f1v10 ) ).isOK() );
-        assertFalse( f2v47.getConstraint().check( asSet( f1v12 ) ).isOK() );
-        assertFalse( f2v47.getConstraint().check( asSet( f1v121 ) ).isOK() );
-        assertTrue( f2v47.getConstraint().check( asSet( f1v13 ) ).isOK() );
-        assertTrue( f2v47.getConstraint().check( asSet( f1v20 ) ).isOK() );
-        
-        /*
-         * Version: 4.7#b
-         * 
-         * <or>
-         *   <requires facet="facet1" version="1.3"/>
-         *   <requires facet="facet1" version="2.0"/>
-         * </or>
-         */
-        
-        assertFalse( f2v47b.getConstraint().check( Collections.EMPTY_SET  ).isOK() );
-        assertFalse( f2v47b.getConstraint().check( asSet( f1v10 ) ).isOK() );
-        assertFalse( f2v47b.getConstraint().check( asSet( f1v12 ) ).isOK() );
-        assertFalse( f2v47b.getConstraint().check( asSet( f1v121 ) ).isOK() );
-        assertTrue( f2v47b.getConstraint().check( asSet( f1v13 ) ).isOK() );
-        assertTrue( f2v47b.getConstraint().check( asSet( f1v20 ) ).isOK() );
-        
-        /*
-         * Version: 4.7#c
-         * 
-         * <and>
-         *   <or>
-         *     <requires facet="facet1" version="1.2.1"/>
-         *     <requires facet="facet1" version="1.3"/>
-         *     <requires facet="facet1" version="2.0"/>
-         *   </or>
-         *   <conflicts facet="facet3a"/>
-         *   <conflicts facet="facet3b" version="1.0"/>
-         *   <conflicts group="group1"/>
-         * </and>
-         */
-        
-        assertFalse( f2v47c.getConstraint().check( Collections.EMPTY_SET  ).isOK() );
-        assertFalse( f2v47c.getConstraint().check( asSet( f1v10 ) ).isOK() );
-        assertFalse( f2v47c.getConstraint().check( asSet( f1v12 ) ).isOK() );
-        assertTrue( f2v47c.getConstraint().check( asSet( f1v121 ) ).isOK() );
-        assertTrue( f2v47c.getConstraint().check( asSet( f1v13 ) ).isOK() );
-        assertTrue( f2v47c.getConstraint().check( asSet( f1v20 ) ).isOK() );
-        
-        assertFalse( f2v47c.getConstraint().check( asSet( f1v20, f3av10 ) ).isOK() );
-        assertFalse( f2v47c.getConstraint().check( asSet( f1v20, f3av20 ) ).isOK() );
-        assertFalse( f2v47c.getConstraint().check( asSet( f1v20, f3bv10 ) ).isOK() );
-        assertTrue( f2v47c.getConstraint().check( asSet( f1v20, f3bv20 ) ).isOK() );
-        assertFalse( f2v47c.getConstraint().check( asSet( f1v20, f3cv10 ) ).isOK() );
-        assertFalse( f2v47c.getConstraint().check( asSet( f1v20, f3cv20 ) ).isOK() );
-    }
-    
-    public void testConstraintApi()
-    {
-        assertEquals( IConstraint.Type.AND.name(), "and" );
-        assertTrue( IConstraint.Type.valueOf( "and" ) == IConstraint.Type.AND );
-        assertTrue( IConstraint.Type.valueOf( "aNd" ) == IConstraint.Type.AND );
-        
-        assertEquals( IConstraint.Type.OR.name(), "or" );
-        assertTrue( IConstraint.Type.valueOf( "or" ) == IConstraint.Type.OR );
-        assertTrue( IConstraint.Type.valueOf( "oR" ) == IConstraint.Type.OR );
-        
-        assertEquals( IConstraint.Type.REQUIRES.name(), "requires" );
-        assertTrue( IConstraint.Type.valueOf( "requires" ) == IConstraint.Type.REQUIRES );
-        assertTrue( IConstraint.Type.valueOf( "rEqUiRes" ) == IConstraint.Type.REQUIRES );
-        
-        assertEquals( IConstraint.Type.CONFLICTS.name(), "conflicts" );
-        assertTrue( IConstraint.Type.valueOf( "conflicts" ) == IConstraint.Type.CONFLICTS );
-        assertTrue( IConstraint.Type.valueOf( "cOnFlIcTs" ) == IConstraint.Type.CONFLICTS );
-        
-        /*
-         * <and>
-         *   <or>
-         *     <requires facet="facet1" version="1.2.1"/>
-         *     <requires facet="facet1" version="1.3"/>
-         *     <requires facet="facet1" version="2.0"/>
-         *   </or>
-         *   <conflicts facet="facet3a"/>
-         *   <conflicts facet="facet3b" version="1.0"/>
-         *   <conflicts group="group1"/>
-         * </and>
-         */
-        
-        assertTrue( ProjectFacetsManager.isGroupDefined( "group1" ) );
-        final IGroup g = ProjectFacetsManager.getGroup( "group1" );
-        assertEquals( g.getId(), "group1" );
-        assertEquals( g.getMembers(), asSet( f2v47c, f3cv10, f3cv20 ) );
-        
-        final IConstraint root = f2v47c.getConstraint();
-        checkConstraint( root, IConstraint.Type.AND, null, null, null, null );
-        
-        IConstraint c1, c2;
-        
-        c1 = (IConstraint) root.getOperand( 0 );
-        checkConstraint( c1, IConstraint.Type.OR, null, null, null );
-        
-        c2 = (IConstraint) c1.getOperand( 0 );
-        checkConstraint( c2, IConstraint.Type.REQUIRES, f1, "1.2.1", Boolean.FALSE );
-        
-        c2 = (IConstraint) c1.getOperand( 1 );
-        checkConstraint( c2, IConstraint.Type.REQUIRES, f1, "1.3", Boolean.FALSE );
-        
-        c2 = (IConstraint) c1.getOperand( 2 );
-        checkConstraint( c2, IConstraint.Type.REQUIRES, f1, "2.0", Boolean.FALSE );
-        
-        c1 = (IConstraint) root.getOperand( 1 );
-        checkConstraint( c1, IConstraint.Type.CONFLICTS, f3a, "*" );
-        
-        c1 = (IConstraint) root.getOperand( 2 );
-        checkConstraint( c1, IConstraint.Type.CONFLICTS, f3b, "1.0" );
-        
-        c1 = (IConstraint) root.getOperand( 3 );
-        checkConstraint( c1, IConstraint.Type.CONFLICTS, g );
-    }
-    
-    private static void checkConstraint( final IConstraint c,
-                                         final IConstraint.Type expectedType,
-                                         final Object expectedOperand )
-    {
-        checkConstraint( c, expectedType, new Object[] { expectedOperand } );
-    }
-
-    private static void checkConstraint( final IConstraint c,
-                                         final IConstraint.Type expectedType,
-                                         final Object expectedOperand1,
-                                         final Object expectedOperand2 )
-    {
-        checkConstraint( c, expectedType, 
-                         new Object[] { expectedOperand1, expectedOperand2 } );
-    }
-
-    private static void checkConstraint( final IConstraint c,
-                                         final IConstraint.Type expectedType,
-                                         final Object expectedOperand1,
-                                         final Object expectedOperand2,
-                                         final Object expectedOperand3 )
-    {
-        checkConstraint( c, expectedType, 
-                         new Object[] { expectedOperand1, expectedOperand2,
-                                        expectedOperand3 } );
-    }
-
-    private static void checkConstraint( final IConstraint c,
-                                         final IConstraint.Type expectedType,
-                                         final Object expectedOperand1,
-                                         final Object expectedOperand2,
-                                         final Object expectedOperand3,
-                                         final Object expectedOperand4 )
-    {
-        checkConstraint( c, expectedType, 
-                         new Object[] { expectedOperand1, expectedOperand2,
-                                        expectedOperand3, expectedOperand4 } );
-    }
-    
-    private static void checkConstraint( final IConstraint c,
-                                         final IConstraint.Type expectedType,
-                                         final Object[] expectedOperands )
-    {
-        assertEquals( c.getType(), expectedType );
-
-        final int count = c.getOperands().size();
-        assertEquals( count, expectedOperands.length );
-        
-        final List<Object> list = new ArrayList<Object>();
-        
-        for( int i = 0; i < count; i++ )
-        {
-            final Object operand = c.getOperand( i );
-            final Object expected = expectedOperands[ i ];
-            
-            if( expected != null )
-            {
-                if( ( expected instanceof String ) &&
-                    ! ( operand instanceof String ) )
-                {
-                    assertEquals( operand.toString(), expected );
-                }
-                else
-                {
-                    assertEquals( operand, expected );
-                }
-            }
-            
-            list.add( c.getOperand( i ) );
-        }
-        
-        assertEquals( c.getOperands(), list );
-    }
-    
-}
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/DefaultVersionTests.java b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/DefaultVersionTests.java
deleted file mode 100644
index 449f9a3..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/DefaultVersionTests.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.tests;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.wst.common.project.facet.core.IDefaultVersionProvider;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public class DefaultVersionTests
-
-    extends TestCase
-    
-{
-    private static IProjectFacet f1;
-    private static IProjectFacetVersion f1v4;
-    
-    private static IProjectFacet f2;
-    private static IProjectFacetVersion f2v2;
-    
-    private static IProjectFacet f3;
-    private static IProjectFacetVersion f3v3;
-    
-    private static IProjectFacet f4;
-    private static IProjectFacetVersion f4v4;
-
-    private static IProjectFacet f5;
-    private static IProjectFacetVersion f5v4;
-    
-    private static IProjectFacet f6;
-    private static IProjectFacetVersion f6v4;
-
-    private static IProjectFacet f7;
-    private static IProjectFacetVersion f7v4;
-    
-    static
-    {
-        f1 = ProjectFacetsManager.getProjectFacet( "dvt_f1" );
-        f1v4 = f1.getVersion( "4.0" );
-
-        f2 = ProjectFacetsManager.getProjectFacet( "dvt_f2" );
-        f2v2 = f2.getVersion( "2.0" );
-
-        f3 = ProjectFacetsManager.getProjectFacet( "dvt_f3" );
-        f3v3 = f3.getVersion( "3.0" );
-
-        f4 = ProjectFacetsManager.getProjectFacet( "dvt_f4" );
-        f4v4 = f4.getVersion( "4.0" );
-
-        f5 = ProjectFacetsManager.getProjectFacet( "dvt_f5" );
-        f5v4 = f5.getVersion( "4.0" );
-
-        f6 = ProjectFacetsManager.getProjectFacet( "dvt_f6" );
-        f6v4 = f6.getVersion( "4.0" );
-
-        f7 = ProjectFacetsManager.getProjectFacet( "dvt_f7" );
-        f7v4 = f7.getVersion( "4.0" );
-    }
-    
-    private DefaultVersionTests( final String name )
-    {
-        super( name );
-    }
-    
-    public static Test suite()
-    {
-        final TestSuite suite = new TestSuite();
-        
-        suite.setName( "Default Version Tests" );
-
-        suite.addTest( new DefaultVersionTests( "testUnspecifiedDefaultVersion" ) );
-        suite.addTest( new DefaultVersionTests( "testStaticDefaultVersion" ) );
-        suite.addTest( new DefaultVersionTests( "testDefaultVersionProvider" ) );
-        suite.addTest( new DefaultVersionTests( "testBadDefaultVersionProvider1" ) );
-        suite.addTest( new DefaultVersionTests( "testBadDefaultVersionProvider2" ) );
-        suite.addTest( new DefaultVersionTests( "testBadDefaultVersionProvider3" ) );
-        suite.addTest( new DefaultVersionTests( "testBadDefaultVersion" ) );
-        
-        return suite;
-    }
-    
-    public void testUnspecifiedDefaultVersion()
-    {
-        assertEquals( f1.getDefaultVersion(), f1v4 );
-    }
-    
-    public void testStaticDefaultVersion()
-    {
-        assertEquals( f2.getDefaultVersion(), f2v2 );
-    }
-    
-    public void testDefaultVersionProvider()
-    {
-        assertEquals( f3.getDefaultVersion(), f3v3 );
-    }
-    
-    /**
-     * Tests the handling of the case where the associated default version
-     * provider returns a version that doesn't belong to the facet that the
-     * version provider is associated with.
-     */
-
-    public void testBadDefaultVersionProvider1()
-    {
-        assertEquals( f4.getDefaultVersion(), f4v4 );
-    }
-    
-    /**
-     * Tests the handling of the case where the associated default version
-     * provider throws an exception when invoked.
-     */
-
-    public void testBadDefaultVersionProvider2()
-    {
-        assertEquals( f5.getDefaultVersion(), f5v4 );
-    }
-    
-    /**
-     * Tests the handling of the case where the associated default version
-     * provider returns null.
-     */
-    
-    public void testBadDefaultVersionProvider3()
-    {
-        assertEquals( f6.getDefaultVersion(), f6v4 );
-    }
-
-    /**
-     * Tests the handling of the case where the specified static default version
-     * is not defined for the facet.
-     */
-
-    public void testBadDefaultVersion()
-    {
-        assertEquals( f7.getDefaultVersion(), f7v4 );
-    }
-    
-    public static final class FacetDvtF3DefaultVersionProvider
-
-        implements IDefaultVersionProvider
-        
-    {
-    
-        public IProjectFacetVersion getDefaultVersion()
-        {
-            return ProjectFacetsManager.getProjectFacet( "dvt_f3" ).getVersion( "3.0" );
-        }
-    }
-    
-    public static final class FacetDvtF5DefaultVersionProvider
-
-        implements IDefaultVersionProvider
-        
-    {
-        public IProjectFacetVersion getDefaultVersion()
-        {
-            throw new RuntimeException();
-        }
-    }
-    
-    public static final class FacetDvtF6DefaultVersionProvider
-
-        implements IDefaultVersionProvider
-        
-    {
-        public IProjectFacetVersion getDefaultVersion()
-        {
-            return null;
-        }
-    }
-    
-}
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/EventDeliveryTests.java b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/EventDeliveryTests.java
deleted file mode 100644
index b94361c..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/EventDeliveryTests.java
+++ /dev/null
@@ -1,449 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.tests;
-
-import static org.eclipse.wst.common.project.facet.core.util.internal.FileUtil.FILE_DOT_PROJECT;
-import static org.eclipse.wst.common.project.facet.core.util.internal.FileUtil.copyFromPlugin;
-import static org.eclipse.wst.common.project.facet.core.tests.FacetedProjectFrameworkCoreTestsPlugin.PLUGIN_ID;
-import static org.eclipse.wst.common.project.facet.core.tests.support.TestUtils.asSet;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.FacetedProjectFramework;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject.Action;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectEvent;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener;
-import org.eclipse.wst.common.project.facet.core.internal.FacetedProject;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-@SuppressWarnings( "unused" )
-public final class EventDeliveryTests
-
-    extends AbstractTests
-    
-{
-    private static IProjectFacet f1;
-    private static IProjectFacetVersion f1v10;
-    private static IProjectFacetVersion f1v20;
-
-    private static IProjectFacet f2;
-    private static IProjectFacetVersion f2v11;
-    private static IProjectFacetVersion f2v21;
-
-    private static IProjectFacet f3;
-    private static IProjectFacetVersion f3v12;
-    private static IProjectFacetVersion f3v22;
-    
-    private static IProjectFacet f4;
-    private static IProjectFacetVersion f4v13;
-    private static IProjectFacetVersion f4v23;
-    
-    static
-    {
-        f1 = ProjectFacetsManager.getProjectFacet( "edt_f1" );
-        f1v10 = f1.getVersion( "1.0" );
-        f1v20 = f1.getVersion( "2.0" );
-        
-        f2 = ProjectFacetsManager.getProjectFacet( "edt_f2" );
-        f2v11 = f2.getVersion( "1.1" );
-        f2v21 = f2.getVersion( "2.1" );
-
-        f3 = ProjectFacetsManager.getProjectFacet( "edt_f3" );
-        f3v12 = f3.getVersion( "1.2" );
-        f3v22 = f3.getVersion( "2.2" );
-
-        f4 = ProjectFacetsManager.getProjectFacet( "edt_f4" );
-        f4v13 = f4.getVersion( "1.3" );
-        f4v23 = f4.getVersion( "2.3" );
-    }
-    
-    private EventDeliveryTests( final String name )
-    {
-        super( name );
-    }
-    
-    public static Test suite()
-    {
-        final TestSuite suite = new TestSuite();
-        
-        suite.setName( "Event Delivery Tests" );
-
-        suite.addTest( new EventDeliveryTests( "testEventsAtProjectCreation1" ) );
-        suite.addTest( new EventDeliveryTests( "testEventsAtProjectCreation2" ) );
-        suite.addTest( new EventDeliveryTests( "testEventsAtProjectCreation3" ) );
-        suite.addTest( new EventDeliveryTests( "testEventDelivery" ) );
-        
-        return suite;
-    }
-    
-    /**
-     * This test verifies that no faceted project events are delivered when a new faceted project
-     * is created.
-     */
-    
-    public void testEventsAtProjectCreation1()
-    
-        throws CoreException
-        
-    {
-        FullExtensionBasedListener.reset();
-        createFacetedProject( "testEventsAtProjectCreation1" );
-        
-        assertEquals( FullExtensionBasedListener.retrieveEvents().size(), 0 );
-    }
-    
-    /**
-     * This test verifies that no faceted project events are delivered when an existing faceted 
-     * project is imported into the workspace and the faceted project wrapper is created. In this
-     * scenario variant, the imported project was previously created and then removed from the
-     * workspace in the same workbench session. 
-     */
-
-    public void testEventsAtProjectCreation2()
-    
-        throws CoreException
-        
-    {
-        final IFacetedProject fpj 
-            = ProjectFacetsManager.create( "testEventsAtProjectCreation2", null, null );
-        
-        final IProject pj = fpj.getProject();
-        addResourceToCleanup( pj );
-        
-        fpj.installProjectFacet( f1v10, null, null );
-        fpj.installProjectFacet( f2v11, null, null );
-        
-        pj.delete( false, false, null );
-        
-        FullExtensionBasedListener.reset();
-        
-        pj.create( null );
-        pj.open( null );
-
-        final IFacetedProject fpjNew = ProjectFacetsManager.create( pj );
-        
-        assertTrue( fpjNew.hasProjectFacet( f1v10 ) );
-        assertTrue( fpjNew.hasProjectFacet( f2v11 ) );
-        assertEquals( FullExtensionBasedListener.retrieveEvents().size(), 0 );
-        assertTrue( fpj != fpjNew );
-    }
-    
-    /**
-     * This test verifies that no faceted project events are delivered when an existing faceted 
-     * project is imported into the workspace and the faceted project wrapper is created. In this
-     * scenario variant, no project with than name has existed in the workspace in this workbench
-     * session. 
-     */
-    
-    public void testEventsAtProjectCreation3()
-    
-        throws CoreException
-        
-    {
-        FullExtensionBasedListener.reset();
-        
-        final IWorkspaceRoot wsRoot = ResourcesPlugin.getWorkspace().getRoot();
-        final File wsLocation = wsRoot.getLocation().toFile();
-        
-        final String pjName = "testEventsAtProjectCreation3";
-        final File pjLocation = new File( wsLocation, pjName );
-        
-        final String resPrefix = "resources/EventDeliveryTests.testEventsAtProjectCreation3/";
-        
-        copyFromPlugin( PLUGIN_ID, 
-                        new Path( resPrefix + FILE_DOT_PROJECT ),
-                        new File( pjLocation, FILE_DOT_PROJECT ) );
-        
-        copyFromPlugin( PLUGIN_ID,
-                        new Path( resPrefix + FacetedProject.METADATA_FILE ),
-                        new File( pjLocation, FacetedProject.METADATA_FILE ) );
-        
-        final IProject pj = wsRoot.getProject( pjName );
-        
-        pj.create( null );
-        pj.open( null );
-        
-        addResourceToCleanup( pj );
-        
-        final IFacetedProject fpj = ProjectFacetsManager.create( pj );
-        
-        assertTrue( fpj.hasProjectFacet( f1v10 ) );
-        assertTrue( fpj.hasProjectFacet( f2v11 ) );
-        assertEquals( FullExtensionBasedListener.retrieveEvents().size(), 0 );
-    }
-    
-    public void testEventDelivery()
-    
-        throws CoreException
-        
-    {
-        // Create a test project.
-        
-        final IFacetedProject fpj = createFacetedProject();
-        
-        // Setup listeners.
-        
-        final Listener fullListenerProjectApi = new Listener();
-        fpj.addListener( fullListenerProjectApi );
-
-        final Listener fullListenerGlobalApi = new Listener();
-        FacetedProjectFramework.addListener( fullListenerGlobalApi );
-
-        final Listener partialListenerProjectApi = new Listener();
-        
-        fpj.addListener( partialListenerProjectApi, IFacetedProjectEvent.Type.PRE_INSTALL, 
-                         IFacetedProjectEvent.Type.FIXED_FACETS_CHANGED );
-        
-        final Listener partialListenerGlobalApi = new Listener();
-        
-        FacetedProjectFramework.addListener( partialListenerGlobalApi, 
-                                             IFacetedProjectEvent.Type.PRE_INSTALL, 
-                                             IFacetedProjectEvent.Type.FIXED_FACETS_CHANGED );
-        
-        if( FullExtensionBasedListener.instance != null )
-        {
-            FullExtensionBasedListener.instance.retrieveDeliveredEvents();
-        }
-        
-        if( PartialExtensionBasedListener.instance != null )
-        {
-            PartialExtensionBasedListener.instance.retrieveDeliveredEvents();
-        }
-        
-        addTearDownOperation
-        (
-            new Runnable()
-            {
-                public void run()
-                {
-                    FacetedProjectFramework.removeListener( fullListenerGlobalApi );
-                    FacetedProjectFramework.removeListener( partialListenerGlobalApi );
-                }
-            }
-        );
-        
-        // Run through a series of operations, checking to make sure that the listeners are seeing
-        // the expected events.
-        
-        fpj.setFixedProjectFacets( asSet( f1, f2 ) );
-        
-        check( fullListenerProjectApi, Resources.fullStep1 );
-        check( fullListenerGlobalApi, Resources.fullStep1 );
-        check( FullExtensionBasedListener.instance, Resources.fullStep1 );
-        check( partialListenerProjectApi, Resources.partialStep1 );
-        check( partialListenerGlobalApi, Resources.partialStep1 );
-        check( PartialExtensionBasedListener.instance, Resources.partialStep1 );
-        
-        fpj.modify( asSet( new Action( Action.Type.INSTALL, f1v10, null ),
-                           new Action( Action.Type.INSTALL, f2v11, null ),
-                           new Action( Action.Type.INSTALL, f3v12, null ) ), null );
-
-        check( fullListenerProjectApi, Resources.fullStep2 );
-        check( fullListenerGlobalApi, Resources.fullStep2 );
-        check( FullExtensionBasedListener.instance, Resources.fullStep2 );
-        check( partialListenerProjectApi, Resources.partialStep2 );
-        check( partialListenerGlobalApi, Resources.partialStep2 );
-        check( PartialExtensionBasedListener.instance, Resources.partialStep2 );
-        
-        fpj.installProjectFacet( f4v13, null, null );
-        
-        check( fullListenerProjectApi, Resources.fullStep3 );
-        check( fullListenerGlobalApi, Resources.fullStep3 );
-        check( FullExtensionBasedListener.instance, Resources.fullStep3 );
-        check( partialListenerProjectApi, Resources.partialStep3 );
-        check( partialListenerGlobalApi, Resources.partialStep3 );
-        check( PartialExtensionBasedListener.instance, Resources.partialStep3 );
-        
-        fpj.uninstallProjectFacet( f3v12, null, null );
-        
-        check( fullListenerProjectApi, Resources.fullStep4 );
-        check( fullListenerGlobalApi, Resources.fullStep4 );
-        check( FullExtensionBasedListener.instance, Resources.fullStep4 );
-        check( partialListenerProjectApi, Resources.partialStep4 );
-        check( partialListenerGlobalApi, Resources.partialStep4 );
-        check( PartialExtensionBasedListener.instance, Resources.partialStep4 );
-        
-        fpj.setFixedProjectFacets( asSet( f4 ) );
-        
-        check( fullListenerProjectApi, Resources.fullStep5 );
-        check( fullListenerGlobalApi, Resources.fullStep5 );
-        check( FullExtensionBasedListener.instance, Resources.fullStep5 );
-        check( partialListenerProjectApi, Resources.partialStep5 );
-        check( partialListenerGlobalApi, Resources.partialStep5 );
-        check( PartialExtensionBasedListener.instance, Resources.partialStep5 );
-        
-        fpj.modify( asSet( new Action( Action.Type.VERSION_CHANGE, f1v20, null ),
-                           new Action( Action.Type.VERSION_CHANGE, f4v23, null ) ), null );
-        
-        check( fullListenerProjectApi, Resources.fullStep6 );
-        check( fullListenerGlobalApi, Resources.fullStep6 );
-        check( FullExtensionBasedListener.instance, Resources.fullStep6 );
-        check( partialListenerProjectApi, Resources.partialStep6 );
-        check( partialListenerGlobalApi, Resources.partialStep6 );
-        check( PartialExtensionBasedListener.instance, Resources.partialStep6 );
-    }
-    
-    private static String toString( final List<IFacetedProjectEvent> events )
-    {
-        final StringBuilder buf = new StringBuilder();
-        
-        for( IFacetedProjectEvent event : events )
-        {
-            buf.append( event.toString() ).append( '\n' );
-        }
-        
-        return buf.toString();
-    }
-    
-    private static void check( final Listener listener,
-                               final String expectedEvents )
-    {
-        final String actual = toString( listener.retrieveDeliveredEvents() ).trim();
-        final String expected = expectedEvents.trim();
-        
-        assertEquals( expected, actual );
-    }
-    
-    private static class Listener 
-    
-        implements IFacetedProjectListener
-        
-    {
-        private final List<IFacetedProjectEvent> events = new ArrayList<IFacetedProjectEvent>();
-
-        public final void handleEvent( final IFacetedProjectEvent event )
-        {
-            this.events.add( event );
-        }
-        
-        public final List<IFacetedProjectEvent> retrieveDeliveredEvents()
-        {
-            final List<IFacetedProjectEvent> result 
-                = new ArrayList<IFacetedProjectEvent>( this.events );
-            
-            this.events.clear();
-            
-            return result;
-        }
-    }
-    
-    public static final class FullExtensionBasedListener
-    
-        extends Listener
-        
-    {
-        public static Listener instance = null;
-        
-        public FullExtensionBasedListener()
-        {
-            instance = this;
-        }
-        
-        public static void reset()
-        {
-            if( instance != null )
-            {
-                instance.retrieveDeliveredEvents();
-            }
-        }
-        
-        public static List<IFacetedProjectEvent> retrieveEvents()
-        {
-            if( instance != null )
-            {
-                return instance.retrieveDeliveredEvents();
-            }
-            else
-            {
-                return Collections.emptyList();
-            }
-        }
-    }
-        
-    public static final class PartialExtensionBasedListener
-    
-        extends Listener
-        
-    {
-        public static Listener instance = null;
-        
-        public PartialExtensionBasedListener()
-        {
-            instance = this;
-        }
-        
-        public static void reset()
-        {
-            if( instance != null )
-            {
-                instance.retrieveDeliveredEvents();
-            }
-        }
-        
-        public static List<IFacetedProjectEvent> retrieveEvents()
-        {
-            if( instance != null )
-            {
-                return instance.retrieveDeliveredEvents();
-            }
-            else
-            {
-                return Collections.emptyList();
-            }
-        }
-    }
-
-    public static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String fullStep1;
-        public static String fullStep2;
-        public static String fullStep3;
-        public static String fullStep4;
-        public static String fullStep5;
-        public static String fullStep6;
-        public static String partialStep1;
-        public static String partialStep2;
-        public static String partialStep3;
-        public static String partialStep4;
-        public static String partialStep5;
-        public static String partialStep6;
-        
-        static
-        {
-            initializeMessages( EventDeliveryTests.class.getName(), 
-                                Resources.class );
-        }
-    }
-    
-}
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/EventDeliveryTests.properties b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/EventDeliveryTests.properties
deleted file mode 100644
index 13fd967..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/EventDeliveryTests.properties
+++ /dev/null
@@ -1,123 +0,0 @@
-fullStep1 = \
-<event project\="testProject" type\="FIXED_FACETS_CHANGED">\n\
-\  <old-fixed-facets>\n\
-\  </old-fixed-facets>\n\
-\  <new-fixed-facets>\n\
-\    <facet id\="edt_f1"/>\n\
-\    <facet id\="edt_f2"/>\n\
-\  </new-fixed-facets>\n\
-</event>\n\
-<event project\="testProject" type\="PROJECT_MODIFIED">\n\
-</event>
-
-fullStep2 = \
-<event project\="testProject" type\="PRE_INSTALL">\n\
-\  <facet id\="edt_f1" version\="1.0"/>\n\
-</event>\n\
-<event project\="testProject" type\="POST_INSTALL">\n\
-\  <facet id\="edt_f1" version\="1.0"/>\n\
-</event>\n\
-<event project\="testProject" type\="PRE_INSTALL">\n\
-\  <facet id\="edt_f2" version\="1.1"/>\n\
-</event>\n\
-<event project\="testProject" type\="POST_INSTALL">\n\
-\  <facet id\="edt_f2" version\="1.1"/>\n\
-</event>\n\
-<event project\="testProject" type\="PRE_INSTALL">\n\
-\  <facet id\="edt_f3" version\="1.2"/>\n\
-</event>\n\
-<event project\="testProject" type\="POST_INSTALL">\n\
-\  <facet id\="edt_f3" version\="1.2"/>\n\
-</event>\n\
-<event project\="testProject" type\="PROJECT_MODIFIED">\n\
-</event>
-
-fullStep3 = \
-<event project\="testProject" type\="PRE_INSTALL">\n\
-\  <facet id\="edt_f4" version\="1.3"/>\n\
-</event>\n\
-<event project\="testProject" type\="POST_INSTALL">\n\
-\  <facet id\="edt_f4" version\="1.3"/>\n\
-</event>\n\
-<event project\="testProject" type\="PROJECT_MODIFIED">\n\
-</event>
-
-fullStep4 = \
-<event project\="testProject" type\="PRE_UNINSTALL">\n\
-\  <facet id\="edt_f3" version\="1.2"/>\n\
-</event>\n\
-<event project\="testProject" type\="POST_UNINSTALL">\n\
-\  <facet id\="edt_f3" version\="1.2"/>\n\
-</event>\n\
-<event project\="testProject" type\="PROJECT_MODIFIED">\n\
-</event>
-
-fullStep5 = \
-<event project\="testProject" type\="FIXED_FACETS_CHANGED">\n\
-\  <old-fixed-facets>\n\
-\    <facet id\="edt_f1"/>\n\
-\    <facet id\="edt_f2"/>\n\
-\  </old-fixed-facets>\n\
-\  <new-fixed-facets>\n\
-\    <facet id\="edt_f4"/>\n\
-\  </new-fixed-facets>\n\
-</event>\n\
-<event project\="testProject" type\="PROJECT_MODIFIED">\n\
-</event>
-
-fullStep6 = \
-<event project\="testProject" type\="PRE_VERSION_CHANGE">\n\
-\  <facet id\="edt_f1" version\="2.0"/>\n\
-</event>\n\
-<event project\="testProject" type\="POST_VERSION_CHANGE">\n\
-\  <facet id\="edt_f1" version\="2.0"/>\n\
-</event>\n\
-<event project\="testProject" type\="PRE_VERSION_CHANGE">\n\
-\  <facet id\="edt_f4" version\="2.3"/>\n\
-</event>\n\
-<event project\="testProject" type\="POST_VERSION_CHANGE">\n\
-\  <facet id\="edt_f4" version\="2.3"/>\n\
-</event>\n\
-<event project\="testProject" type\="PROJECT_MODIFIED">\n\
-</event>
-
-partialStep1 = \
-<event project\="testProject" type\="FIXED_FACETS_CHANGED">\n\
-\  <old-fixed-facets>\n\
-\  </old-fixed-facets>\n\
-\  <new-fixed-facets>\n\
-\    <facet id\="edt_f1"/>\n\
-\    <facet id\="edt_f2"/>\n\
-\  </new-fixed-facets>\n\
-</event>
-
-partialStep2 = \
-<event project\="testProject" type\="PRE_INSTALL">\n\
-\  <facet id\="edt_f1" version\="1.0"/>\n\
-</event>\n\
-<event project\="testProject" type\="PRE_INSTALL">\n\
-\  <facet id\="edt_f2" version\="1.1"/>\n\
-</event>\n\
-<event project\="testProject" type\="PRE_INSTALL">\n\
-\  <facet id\="edt_f3" version\="1.2"/>\n\
-</event>
-
-partialStep3 = \
-<event project\="testProject" type\="PRE_INSTALL">\n\
-\  <facet id\="edt_f4" version\="1.3"/>\n\
-</event>
-
-partialStep4 = 
-
-partialStep5 = \
-<event project\="testProject" type\="FIXED_FACETS_CHANGED">\n\
-\  <old-fixed-facets>\n\
-\    <facet id\="edt_f1"/>\n\
-\    <facet id\="edt_f2"/>\n\
-\  </old-fixed-facets>\n\
-\  <new-fixed-facets>\n\
-\    <facet id\="edt_f4"/>\n\
-\  </new-fixed-facets>\n\
-</event>
-
-partialStep6 = 
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/FacetActionSortTests.java b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/FacetActionSortTests.java
deleted file mode 100644
index aa7d7bd..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/FacetActionSortTests.java
+++ /dev/null
@@ -1,206 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.tests;
-
-import static java.util.Arrays.asList;
-import static org.eclipse.wst.common.project.facet.core.tests.support.TestUtils.asSet;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject.Action;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-@SuppressWarnings( "unused" )
-public class FacetActionSortTests
-
-    extends TestCase
-    
-{
-    private static IProjectFacet f1;
-    private static IProjectFacetVersion f1v10;
-    private static IProjectFacetVersion f1v12;
-    private static IProjectFacetVersion f1v121;
-    private static IProjectFacetVersion f1v13;
-    private static IProjectFacetVersion f1v20;
-    
-    private static IProjectFacet f2;
-    private static IProjectFacetVersion f2v35;
-    private static IProjectFacetVersion f2v35a;
-    private static IProjectFacetVersion f2v47;
-    private static IProjectFacetVersion f2v47b;
-    private static IProjectFacetVersion f2v47c;
-    
-    private static IProjectFacet f2ext;
-    private static IProjectFacetVersion f2extv10;
-
-    private static IProjectFacet f3a;
-    private static IProjectFacetVersion f3av10;
-    private static IProjectFacetVersion f3av20;
-
-    private static IProjectFacet f3b;
-    private static IProjectFacetVersion f3bv10;
-    private static IProjectFacetVersion f3bv20;
-
-    private static IProjectFacet f3c;
-    private static IProjectFacetVersion f3cv10;
-    private static IProjectFacetVersion f3cv20;
-
-    static
-    {
-        try
-        {
-            f1 = ProjectFacetsManager.getProjectFacet( "facet1" );
-            f1v10 = f1.getVersion( "1.0" );
-            f1v12 = f1.getVersion( "1.2" );
-            f1v121 = f1.getVersion( "1.2.1" );
-            f1v13 = f1.getVersion( "1.3" );
-            f1v20 = f1.getVersion( "2.0" );
-            
-            f2 = ProjectFacetsManager.getProjectFacet( "facet2" );
-            f2v35 = f2.getVersion( "3.5" );
-            f2v35a = f2.getVersion( "3.5#a" );
-            f2v47 = f2.getVersion( "4.7" );
-            f2v47b = f2.getVersion( "4.7#b" );
-            f2v47c = f2.getVersion( "4.7#c" );
-            
-            f2ext = ProjectFacetsManager.getProjectFacet( "facet2ext" );
-            f2extv10 = f2ext.getVersion( "1.0" );
-
-            f3a = ProjectFacetsManager.getProjectFacet( "facet3a" );
-            f3av10 = f3a.getVersion( "1.0" );
-            f3av20 = f3a.getVersion( "2.0" );
-
-            f3b = ProjectFacetsManager.getProjectFacet( "facet3b" );
-            f3bv10 = f3b.getVersion( "1.0" );
-            f3bv20 = f3b.getVersion( "2.0" );
-
-            f3c = ProjectFacetsManager.getProjectFacet( "facet3c" );
-            f3cv10 = f3c.getVersion( "1.0" );
-            f3cv20 = f3c.getVersion( "2.0" );
-        }
-        catch( Exception e )
-        {
-            // Ignore failures. This api is tested explicitly.
-        }
-    }
-    
-    private FacetActionSortTests( final String name )
-    {
-        super( name );
-    }
-    
-    public static Test suite()
-    {
-        final TestSuite suite = new TestSuite();
-        
-        suite.setName( "Facet Action Sort Tests" );
-
-        suite.addTest( new FacetActionSortTests( "testUninstallComesFirst1" ) );
-        suite.addTest( new FacetActionSortTests( "testUninstallComesFirst2" ) );
-        suite.addTest( new FacetActionSortTests( "testSortStability1" ) );
-        suite.addTest( new FacetActionSortTests( "testSortStability2" ) );
-        
-        return suite;
-    }
-    
-    /**
-     * Tests whether the sort places uninstall actions first. This is the 
-     * control test case. The input already places uninstall first.
-     */
-    
-    public void testUninstallComesFirst1()
-    {
-        final Action a1 = new Action( Action.Type.INSTALL, f1v12, null );
-        final Action a2 = new Action( Action.Type.UNINSTALL, f3av10, null );
-        
-        final List<Action> actions = new ArrayList<Action>();
-        
-        actions.add( a2 );
-        actions.add( a1 );
-        
-        ProjectFacetsManager.sort( asSet( f3av10 ), actions );
-        assertEquals( actions, asList( a2, a1 ) );
-    }
-    
-    /**
-     * Tests whether the sort places uninstall actions first. The test case 
-     * places an install action in front of the uninstall action and checks
-     * whether the sort algorithm reverses the order. 
-     */
-    
-    public void testUninstallComesFirst2()
-    {
-        final Action a1 = new Action( Action.Type.INSTALL, f1v12, null );
-        final Action a2 = new Action( Action.Type.UNINSTALL, f3av10, null );
-        
-        final List<Action> actions = new ArrayList<Action>();
-        
-        actions.add( a1 );
-        actions.add( a2 );
-        
-        ProjectFacetsManager.sort( asSet( f3av10 ), actions );
-        assertEquals( actions, asList( a2, a1 ) );
-    }
-
-    /**
-     * Tests whether the sort produces "stable" results given unrelated facets.
-     * This is the control test case. The input is already in the correct order. 
-     */
-    
-    @SuppressWarnings( "unchecked" )
-    public void testSortStability1()
-    {
-        final Action a1 = new Action( Action.Type.INSTALL, f1v12, null );
-        final Action a2 = new Action( Action.Type.INSTALL, f3av10, null );
-        
-        final List<Action> actions = new ArrayList<Action>();
-        
-        actions.add( a1 );
-        actions.add( a2 );
-        
-        ProjectFacetsManager.sort( Collections.EMPTY_SET, actions );
-        assertEquals( actions, asList( a1, a2 ) );
-    }
-
-    /**
-     * Tests whether the sort produces "stable" results given unrelated facets.
-     * The input facets are in the reverse order.
-     */
-    
-    @SuppressWarnings( "unchecked" )
-    public void testSortStability2()
-    {
-        final Action a1 = new Action( Action.Type.INSTALL, f1v12, null );
-        final Action a2 = new Action( Action.Type.INSTALL, f3av10, null );
-        
-        final List<Action> actions = new ArrayList<Action>();
-        
-        actions.add( a2 );
-        actions.add( a1 );
-        
-        ProjectFacetsManager.sort( Collections.EMPTY_SET, actions );
-        assertEquals( actions, asList( a1, a2 ) );
-    }
-    
-}
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/FacetActionsTests.java b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/FacetActionsTests.java
deleted file mode 100644
index 48906d5..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/FacetActionsTests.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.tests;
-
-import java.io.ByteArrayInputStream;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.common.project.facet.core.IDelegate;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public class FacetActionsTests
-
-    extends AbstractTests
-    
-{
-    private static IProjectFacet f1;
-    private static IProjectFacetVersion f1v1;
-    private static IProjectFacetVersion f1v2;
-    
-    static
-    {
-        f1 = ProjectFacetsManager.getProjectFacet( "fat_f1" );
-        f1v1 = f1.getVersion( "1.0" );
-        f1v2 = f1.getVersion( "2.0" );
-    }
-    
-    private FacetActionsTests( final String name )
-    {
-        super( name );
-    }
-    
-    public static Test suite()
-    {
-        final TestSuite suite = new TestSuite();
-        
-        suite.setName( "Facet Actions Tests" );
-
-        suite.addTest( new FacetActionsTests( "testMultiVersionInstall1" ) );
-        suite.addTest( new FacetActionsTests( "testMultiVersionInstall2" ) );
-        
-        return suite;
-    }
-    
-    /*
-     * The following test cases test the scenario where different 
-     * implementations of the INSTALL action are provided for two versions of 
-     * the same facet.
-     * 
-     * Scenario Test Code:
-     * 
-     *   testMultiVersionInstall1
-     *   testMultiVersionInstall2
-     *   F1v1InstallDelegate
-     *   F1v2InstallDelegate
-     */
-    
-    public void testMultiVersionInstall1()
-    
-        throws CoreException
-        
-    {
-        final IFacetedProject fpj = createFacetedProject();
-        final IProject pj = fpj.getProject();
-        fpj.installProjectFacet( f1v1, null, null );
-        
-        assertTrue( F1v1InstallDelegate.getMarkerFile( pj ).exists() );
-        assertFalse( F1v2InstallDelegate.getMarkerFile( pj ).exists() );
-    }
-
-    public void testMultiVersionInstall2()
-    
-        throws CoreException
-        
-    {
-        final IFacetedProject fpj = createFacetedProject();
-        final IProject pj = fpj.getProject();
-        fpj.installProjectFacet( f1v2, null, null );
-        
-        assertFalse( F1v1InstallDelegate.getMarkerFile( pj ).exists() );
-        assertTrue( F1v2InstallDelegate.getMarkerFile( pj ).exists() );
-    }
-    
-    public static final class F1v1InstallDelegate
-    
-        implements IDelegate
-        
-    {
-        public static IFile getMarkerFile( final IProject project )
-        {
-            return project.getFile( "v1marker" );
-        }
-        
-        public void execute( final IProject project,
-                             final IProjectFacetVersion fv,
-                             final Object config,
-                             final IProgressMonitor monitor ) 
-        
-            throws CoreException
-            
-        {
-            final IFile marker = getMarkerFile( project );
-            
-            final ByteArrayInputStream emptyStream 
-                = new ByteArrayInputStream( new byte[ 0 ] );
-            
-            marker.create( emptyStream, false, null );
-        }
-    }
-
-    public static final class F1v2InstallDelegate
-    
-        implements IDelegate
-        
-    {
-        public static IFile getMarkerFile( final IProject project )
-        {
-            return project.getFile( "v2marker" );
-        }
-        
-        public void execute( final IProject project,
-                             final IProjectFacetVersion fv,
-                             final Object config,
-                             final IProgressMonitor monitor ) 
-        
-            throws CoreException
-            
-        {
-            final IFile marker = getMarkerFile( project );
-            
-            final ByteArrayInputStream emptyStream 
-                = new ByteArrayInputStream( new byte[ 0 ] );
-            
-            marker.create( emptyStream, false, null );
-        }
-    }
-    
-}
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/FacetConstraintsTests.java b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/FacetConstraintsTests.java
deleted file mode 100644
index 0f790b6..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/FacetConstraintsTests.java
+++ /dev/null
@@ -1,271 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.tests;
-
-import static org.eclipse.wst.common.project.facet.core.tests.support.TestUtils.asSet;
-
-import java.util.Collections;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public class FacetConstraintsTests
-
-    extends TestCase
-    
-{
-    private static IProjectFacet f1;
-    private static IProjectFacetVersion f1v10;
-    
-    private static IProjectFacet f3;
-    private static IProjectFacetVersion f3v10;
-
-    private static IProjectFacet f4;
-    private static IProjectFacetVersion f4v10;
-
-    private static IProjectFacet f5;
-    private static IProjectFacetVersion f5v10;
-    
-    private static IProjectFacet f6;
-    private static IProjectFacetVersion f6v10;
-    private static IProjectFacetVersion f6v23;
-    private static IProjectFacetVersion f6v37;
-    private static IProjectFacetVersion f6v40;
-    private static IProjectFacetVersion f6v45;
-
-    private static IProjectFacet f7;
-    private static IProjectFacetVersion f7v10;
-    private static IProjectFacetVersion f7v20;
-
-    private static IProjectFacet f8;
-    private static IProjectFacetVersion f8v10;
-    private static IProjectFacetVersion f8v20;
-    private static IProjectFacetVersion f8v30;
-    
-    private static IProjectFacet f9;
-    private static IProjectFacetVersion f9v10;
-    
-    private static IProjectFacet f10;
-    private static IProjectFacetVersion f10v10;
-    private static IProjectFacetVersion f10v20;
-    
-    static
-    {
-        f1 = ProjectFacetsManager.getProjectFacet( "fct_f1" );
-        f1v10 = f1.getVersion( "1.0" );
-
-        f3 = ProjectFacetsManager.getProjectFacet( "fct_f3" );
-        f3v10 = f3.getVersion( "1.0" );
-
-        f4 = ProjectFacetsManager.getProjectFacet( "fct_f4" );
-        f4v10 = f4.getVersion( "1.0" );
-
-        f5 = ProjectFacetsManager.getProjectFacet( "fct_f5" );
-        f5v10 = f5.getVersion( "1.0" );
-
-        f6 = ProjectFacetsManager.getProjectFacet( "fct_f6" );
-        f6v10 = f6.getVersion( "1.0" );
-        f6v23 = f6.getVersion( "2.3" );
-        f6v37 = f6.getVersion( "3.7" );
-        f6v40 = f6.getVersion( "4.0" );
-        f6v45 = f6.getVersion( "4.5" );
-
-        f7 = ProjectFacetsManager.getProjectFacet( "fct_f7" );
-        f7v10 = f7.getVersion( "1.0" );
-        f7v20 = f7.getVersion( "2.0" );
-
-        f8 = ProjectFacetsManager.getProjectFacet( "fct_f8" );
-        f8v10 = f8.getVersion( "1.0" );
-        f8v20 = f8.getVersion( "2.0" );
-        f8v30 = f8.getVersion( "3.0" );
-
-        f9 = ProjectFacetsManager.getProjectFacet( "fct_f9" );
-        f9v10 = f9.getVersion( "1.0" );
-
-        f10 = ProjectFacetsManager.getProjectFacet( "fct_f10" );
-        f10v10 = f10.getVersion( "1.0" );
-        f10v20 = f10.getVersion( "2.0" );
-    }
-    
-    private FacetConstraintsTests( final String name )
-    {
-        super( name );
-    }
-    
-    public static Test suite()
-    {
-        final TestSuite suite = new TestSuite();
-        
-        suite.setName( "Facet Constraint Tests" );
-
-        suite.addTest( new FacetConstraintsTests( "testIndirectConflict1" ) );
-        suite.addTest( new FacetConstraintsTests( "testIndirectConflict2" ) );
-        suite.addTest( new FacetConstraintsTests( "testIndirectConflict3" ) );
-        suite.addTest( new FacetConstraintsTests( "testIndirectConflict4" ) );
-        suite.addTest( new FacetConstraintsTests( "testIndirectConflict5" ) );
-        suite.addTest( new FacetConstraintsTests( "testIndirectConflict6" ) );
-        suite.addTest( new FacetConstraintsTests( "testIndirectConflict7" ) );
-        suite.addTest( new FacetConstraintsTests( "testIndirectConflict8" ) );
-        suite.addTest( new FacetConstraintsTests( "testRequiresWithNoVersion" ) );
-        suite.addTest( new FacetConstraintsTests( "testRequiresWithUnknownVersion" ) );
-        suite.addTest( new FacetConstraintsTests( "testGroupRequires" ) );
-        suite.addTest( new FacetConstraintsTests( "testGroupRequiresSoft" ) );
-        
-        return suite;
-    }
-    
-    /*
-     * Tests whether the conflict detection code picks up on an indirect
-     * conflict. Also tests that a soft constraint is not used to flag a
-     * conflict.
-     * 
-     * Here is the relationship diagram between the five facets involved in 
-     * this test: 
-     * 
-     *           conflicts            requires
-     *   f1 ----------------> f2 <---------------- f3
-     *   f4 <----------------    <---------------- f5
-     *           conflicts         soft requires
-     * 
-     * These case should come back positive for conflict:
-     * 
-     *   f1 with f3
-     *   f3 with f1
-     *   f4 with f3
-     *   f3 with f4
-     *   
-     * These case should come back negative for conflict:
-     * 
-     *   f1 with f5
-     *   f5 with f1
-     *   f4 with f5
-     *   f5 with f4
-     */
-    
-    public void testIndirectConflict1()
-    {
-        assertTrue( f1v10.conflictsWith( f3v10 ) );
-    }
-    
-    public void testIndirectConflict2()
-    {
-        assertTrue( f3v10.conflictsWith( f1v10 ) );
-    }
-
-    public void testIndirectConflict3()
-    {
-        assertTrue( f4v10.conflictsWith( f3v10 ) );
-    }
-
-    public void testIndirectConflict4()
-    {
-        assertTrue( f3v10.conflictsWith( f4v10 ) );
-    }
-    
-    public void testIndirectConflict5()
-    {
-        assertFalse( f1v10.conflictsWith( f5v10 ) );
-    }
-    
-    public void testIndirectConflict6()
-    {
-        assertFalse( f5v10.conflictsWith( f1v10 ) );
-    }
-
-    public void testIndirectConflict7()
-    {
-        assertFalse( f4v10.conflictsWith( f5v10 ) );
-    }
-
-    public void testIndirectConflict8()
-    {
-        assertFalse( f5v10.conflictsWith( f4v10 ) );
-    }
-    
-    /*
-     * Tests the following constraint:
-     * 
-     *   <requires facet="fct_f6"/>
-     */
-    
-    @SuppressWarnings( "unchecked" )
-    public void testRequiresWithNoVersion()
-    {
-        assertFalse( f7v10.getConstraint().check( Collections.EMPTY_SET ).isOK() );
-        assertTrue( f7v10.getConstraint().check( asSet( f6v10 ) ).isOK() );
-        assertTrue( f7v10.getConstraint().check( asSet( f6v23 ) ).isOK() );
-        assertTrue( f7v10.getConstraint().check( asSet( f6v37 ) ).isOK() );
-        assertTrue( f7v10.getConstraint().check( asSet( f6v40 ) ).isOK() );
-        assertTrue( f7v10.getConstraint().check( asSet( f6v45 ) ).isOK() );
-    }
-    
-    /*
-     * Tests the following constraint that specifies versions that don't exist:
-     * 
-     *   <requires facet="fct_f6" version="[5.0-6.5)"/>
-     */
-    
-    @SuppressWarnings( "unchecked" )
-    public void testRequiresWithUnknownVersion()
-    {
-        assertFalse( f7v20.getConstraint().check( Collections.EMPTY_SET ).isOK() );
-        assertFalse( f7v20.getConstraint().check( asSet( f6v10 ) ).isOK() );
-        assertFalse( f7v20.getConstraint().check( asSet( f6v23 ) ).isOK() );
-        assertFalse( f7v20.getConstraint().check( asSet( f6v37 ) ).isOK() );
-        assertFalse( f7v20.getConstraint().check( asSet( f6v40 ) ).isOK() );
-        assertFalse( f7v20.getConstraint().check( asSet( f6v45 ) ).isOK() );
-    }
-    
-    /*
-     * Tests the "requires any group member" constraint:
-     * 
-     *   <requires group="fct_g1"/>
-     */
-    
-    @SuppressWarnings( "unchecked" )
-    public void testGroupRequires()
-    {
-        assertFalse( f10v10.getConstraint().check( Collections.EMPTY_SET ).isOK() );
-        assertTrue( f10v10.getConstraint().check( asSet( f8v10 ) ).isOK() );
-        assertTrue( f10v10.getConstraint().check( asSet( f8v20 ) ).isOK() );
-        assertFalse( f10v10.getConstraint().check( asSet( f8v30 ) ).isOK() );
-        assertTrue( f10v10.getConstraint().check( asSet( f9v10 ) ).isOK() );
-        assertFalse( f10v10.getConstraint().check( asSet( f1v10 ) ).isOK() );
-    }
-
-    /*
-     * Tests the soft version of the "requires any group member" constraint:
-     * 
-     *   <requires group="fct_g1" soft="true"/>
-     */
-    
-    @SuppressWarnings( "unchecked" )
-    public void testGroupRequiresSoft()
-    {
-        assertTrue( f10v20.getConstraint().check( Collections.EMPTY_SET ).isOK() );
-        assertTrue( f10v20.getConstraint().check( asSet( f8v10 ) ).isOK() );
-        assertTrue( f10v20.getConstraint().check( asSet( f8v20 ) ).isOK() );
-        assertTrue( f10v20.getConstraint().check( asSet( f8v30 ) ).isOK() );
-        assertTrue( f10v20.getConstraint().check( asSet( f9v10 ) ).isOK() );
-        assertTrue( f10v20.getConstraint().check( asSet( f1v10 ) ).isOK() );
-    }
-
-}
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/FacetedProjectFrameworkCoreTestsPlugin.java b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/FacetedProjectFrameworkCoreTestsPlugin.java
deleted file mode 100644
index 5f262f9..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/FacetedProjectFrameworkCoreTestsPlugin.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.tests;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class FacetedProjectFrameworkCoreTestsPlugin
-{
-    public static final String PLUGIN_ID = "org.eclipse.wst.common.project.facet.core.tests";
-
-}
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/PresetsTests.java b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/PresetsTests.java
deleted file mode 100644
index fa702e3..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/PresetsTests.java
+++ /dev/null
@@ -1,203 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.tests;
-
-import static org.eclipse.wst.common.project.facet.core.tests.BasicTests.f1v121;
-import static org.eclipse.wst.common.project.facet.core.tests.BasicTests.f1v20;
-import static org.eclipse.wst.common.project.facet.core.tests.BasicTests.f2extv10;
-import static org.eclipse.wst.common.project.facet.core.tests.BasicTests.f2v35a;
-import static org.eclipse.wst.common.project.facet.core.tests.BasicTests.f3av10;
-import static org.eclipse.wst.common.project.facet.core.tests.BasicTests.f3bv10;
-import static org.eclipse.wst.common.project.facet.core.tests.BasicTests.f3cv10;
-import static org.eclipse.wst.common.project.facet.core.tests.support.TestUtils.asSet;
-
-import java.util.Collections;
-import java.util.Map;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.common.project.facet.core.IDynamicPreset;
-import org.eclipse.wst.common.project.facet.core.IPreset;
-import org.eclipse.wst.common.project.facet.core.IPresetFactory;
-import org.eclipse.wst.common.project.facet.core.PresetDefinition;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class PresetsTests
-
-    extends TestCase
-    
-{
-    private PresetsTests( final String name )
-    {
-        super( name );
-    }
-    
-    public static Test suite()
-    {
-        final TestSuite suite = new TestSuite();
-        
-        suite.setName( "Presets Tests" );
-
-        suite.addTest( new PresetsTests( "testSimpleStaticPresets" ) );
-        suite.addTest( new PresetsTests( "testDerivedStaticPresets" ) );
-        suite.addTest( new PresetsTests( "testDynamicPresets" ) );
-        suite.addTest( new PresetsTests( "testStaticPresetsExtendingDynamicPresets1" ) );
-        suite.addTest( new PresetsTests( "testStaticPresetsExtendingDynamicPresets2" ) );
-        suite.addTest( new PresetsTests( "testUserDefinedPresets" ) );
-        
-        return suite;
-    }
-    
-    public void testSimpleStaticPresets()
-    {
-        assertTrue( ProjectFacetsManager.isPresetDefined( "pt_preset1" ) );
-        final IPreset preset1 = ProjectFacetsManager.getPreset( "pt_preset1" );
-        assertTrue( ProjectFacetsManager.getPresets().contains( preset1 ) );        
-        
-        assertEquals( preset1.getId(), "pt_preset1" );
-        assertEquals( preset1.getType(), IPreset.Type.STATIC );
-        assertEquals( preset1.getLabel(), "Preset 1" );
-        assertEquals( preset1.getDescription(), "This is the description for the first preset." );
-        assertEquals( preset1.getProjectFacets(), asSet( f1v20, f2v35a, f2extv10 ) );
-        
-        assertTrue( ProjectFacetsManager.isPresetDefined( "pt_preset2" ) );
-        final IPreset preset2 = ProjectFacetsManager.getPreset( "pt_preset2" );
-        assertTrue( ProjectFacetsManager.getPresets().contains( preset2 ) );        
-        
-        assertEquals( preset2.getId(), "pt_preset2" );
-        assertEquals( preset2.getType(), IPreset.Type.STATIC );
-        assertEquals( preset2.getLabel(), "pt_preset2" );
-        assertEquals( preset2.getDescription(), "" );
-        assertEquals( preset2.getProjectFacets(), asSet( f3av10, f3bv10, f3cv10 ) );
-    }
-
-    public void testDerivedStaticPresets()
-    {
-        assertTrue( ProjectFacetsManager.isPresetDefined( "pt_preset3" ) );
-        final IPreset preset3 = ProjectFacetsManager.getPreset( "pt_preset3" );
-        assertTrue( ProjectFacetsManager.getPresets().contains( preset3 ) );        
-        
-        assertEquals( preset3.getId(), "pt_preset3" );
-        assertEquals( preset3.getType(), IPreset.Type.STATIC );
-        assertEquals( preset3.getProjectFacets(), asSet( f1v121, f2v35a, f2extv10, f3av10 ) );
-    }
-    
-    public void testDynamicPresets()
-    {
-        assertTrue( ProjectFacetsManager.isPresetDefined( "pt_dyn_preset" ) );
-        final IPreset preset = ProjectFacetsManager.getPreset( "pt_dyn_preset" );
-        assertTrue( ProjectFacetsManager.getPresets().contains( preset ) );
-
-        assertEquals( preset.getId(), "pt_dyn_preset" );
-        assertEquals( preset.getType(), IPreset.Type.DYNAMIC );
-        assertEquals( preset.getLabel(), "pt_dyn_preset" );
-        assertEquals( preset.getDescription(), "" );
-        assertEquals( preset.getProjectFacets(), Collections.emptySet() );
-        
-        final IDynamicPreset dynamicPreset = (IDynamicPreset) preset;
-        final IPreset resolved = dynamicPreset.resolve( Collections.<String,Object>emptyMap() );
-        
-        assertEquals( resolved.getId(), "pt_dyn_preset" );
-        assertEquals( resolved.getType(), IPreset.Type.STATIC );
-        assertEquals( resolved.getLabel(), "Dynamic Preset" );
-        assertEquals( resolved.getDescription(), "The description of the dynamic preset." );
-        assertEquals( resolved.getProjectFacets(), asSet( f1v20, f2extv10, f3cv10 ) );
-    }
-    
-    public void testStaticPresetsExtendingDynamicPresets1()
-    {
-        assertTrue( ProjectFacetsManager.isPresetDefined( "pt_static_extending_dynamic_preset_1" ) );
-        final IPreset preset = ProjectFacetsManager.getPreset( "pt_static_extending_dynamic_preset_1" );
-        assertTrue( ProjectFacetsManager.getPresets().contains( preset ) );
-
-        assertEquals( preset.getId(), "pt_static_extending_dynamic_preset_1" );
-        assertEquals( preset.getType(), IPreset.Type.DYNAMIC );
-        assertEquals( preset.getLabel(), "Static Extending Dynamic Preset" );
-        assertEquals( preset.getDescription(), "This is the static-dynamic description." );
-        assertEquals( preset.getProjectFacets(), Collections.emptySet() );
-        
-        final IDynamicPreset dynamicPreset = (IDynamicPreset) preset;
-        final IPreset resolved = dynamicPreset.resolve( Collections.<String,Object>emptyMap() );
-        
-        assertEquals( resolved.getId(), "pt_static_extending_dynamic_preset_1" );
-        assertEquals( resolved.getType(), IPreset.Type.STATIC );
-        assertEquals( resolved.getLabel(), "Static Extending Dynamic Preset" );
-        assertEquals( resolved.getDescription(), "This is the static-dynamic description." );
-        assertEquals( resolved.getProjectFacets(), asSet( f1v20, f2extv10, f3cv10, f2v35a, f3bv10 ) );
-    }
-
-    public void testStaticPresetsExtendingDynamicPresets2()
-    {
-        assertTrue( ProjectFacetsManager.isPresetDefined( "pt_static_extending_dynamic_preset_2" ) );
-        final IPreset preset = ProjectFacetsManager.getPreset( "pt_static_extending_dynamic_preset_2" );
-        assertTrue( ProjectFacetsManager.getPresets().contains( preset ) );
-
-        assertEquals( preset.getId(), "pt_static_extending_dynamic_preset_2" );
-        assertEquals( preset.getType(), IPreset.Type.DYNAMIC );
-        assertEquals( preset.getLabel(), "Static Extending Dynamic Preset 2" );
-        assertEquals( preset.getDescription(), "This is the static-dynamic description 2." );
-        assertEquals( preset.getProjectFacets(), Collections.emptySet() );
-        
-        final IDynamicPreset dynamicPreset = (IDynamicPreset) preset;
-        final IPreset resolved = dynamicPreset.resolve( Collections.<String,Object>emptyMap() );
-        
-        assertEquals( resolved.getId(), "pt_static_extending_dynamic_preset_2" );
-        assertEquals( resolved.getType(), IPreset.Type.STATIC );
-        assertEquals( resolved.getLabel(), "Static Extending Dynamic Preset 2" );
-        assertEquals( resolved.getDescription(), "This is the static-dynamic description 2." );
-        assertEquals( resolved.getProjectFacets(), asSet( f1v121, f2extv10, f3cv10, f2v35a, f3bv10, f3av10 ) );
-    }
-    
-    public void testUserDefinedPresets()
-    {
-        assertFalse( ProjectFacetsManager.isPresetDefined( "pt_user_defined" ) );
-        
-        final IPreset preset
-            = ProjectFacetsManager.definePreset( "pt_user_defined", "the description", 
-                                                 asSet( f1v121, f2extv10 ) );
-        
-        assertTrue( ProjectFacetsManager.isPresetDefined( preset.getId() ) );
-        assertTrue( ProjectFacetsManager.getPresets().contains( preset ) );
-
-        assertEquals( preset.getType(), IPreset.Type.USER_DEFINED );
-        assertEquals( preset.getLabel(), "pt_user_defined" );
-        assertEquals( preset.getDescription(), "the description" );
-        assertEquals( preset.getProjectFacets(), asSet( f1v121, f2extv10 ) );
-        
-        ProjectFacetsManager.deletePreset( preset );
-        assertFalse( ProjectFacetsManager.isPresetDefined( "pt_user_defined" ) );
-    }
-    
-    public static final class PresetFactory 
-    
-        implements IPresetFactory
-        
-    {
-        public PresetDefinition createPreset( final String presetId,
-                                              final Map<String,Object> context ) 
-        
-            throws CoreException
-            
-        {
-            return new PresetDefinition( "Dynamic Preset", "The description of the dynamic preset.",
-                                         asSet( f1v20, f2extv10, f3cv10 ) );
-        }
-    }
-    
-}
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/ProjectChangeReactionTests.java b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/ProjectChangeReactionTests.java
deleted file mode 100644
index 74cce8c..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/ProjectChangeReactionTests.java
+++ /dev/null
@@ -1,229 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.tests;
-
-import static org.eclipse.wst.common.project.facet.core.tests.support.TestUtils.asSet;
-import static org.eclipse.wst.common.project.facet.core.tests.support.TestUtils.readFromFile;
-import static org.eclipse.wst.common.project.facet.core.tests.support.TestUtils.waitForCondition;
-import static org.eclipse.wst.common.project.facet.core.tests.support.TestUtils.writeToFile;
-
-import java.io.IOException;
-import java.util.Collections;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-import org.eclipse.wst.common.project.facet.core.tests.support.TestUtils.ICondition;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-@SuppressWarnings( "unused" )
-public final class ProjectChangeReactionTests
-
-    extends AbstractTests
-    
-{
-    private static final String METADATA_FILE 
-        = ".settings/org.eclipse.wst.common.project.facet.core.xml";
-    
-    private static final String TEST_PROJECT_NAME = "testProject";
-
-    private static IProjectFacet f1;
-    private static IProjectFacetVersion f1v10;
-    private static IProjectFacetVersion f1v12;
-    private static IProjectFacetVersion f1v121;
-    private static IProjectFacetVersion f1v13;
-    private static IProjectFacetVersion f1v20;
-    
-    static
-    {
-        try
-        {
-            f1 = ProjectFacetsManager.getProjectFacet( "facet1" );
-            f1v10 = f1.getVersion( "1.0" );
-            f1v12 = f1.getVersion( "1.2" );
-            f1v121 = f1.getVersion( "1.2.1" );
-            f1v13 = f1.getVersion( "1.3" );
-            f1v20 = f1.getVersion( "2.0" );
-        }
-        catch( Exception e )
-        {
-            // Ignore failures. This api is tested explicitly.
-        }
-    }
-    
-    private IProject pj;
-    private IFacetedProject fpj;
-    private IFile mdfile;
-
-    private ProjectChangeReactionTests( final String name )
-    {
-        super( name );
-    }
-    
-    public static Test suite()
-    {
-        final TestSuite suite = new TestSuite();
-        
-        suite.setName( "Project Change Reaction Tests" );
-
-        suite.addTest( new ProjectChangeReactionTests( "testReactionToProjectDelete" ) );
-        suite.addTest( new ProjectChangeReactionTests( "testReactionToMetadataFileDelete" ) );
-        suite.addTest( new ProjectChangeReactionTests( "testReactionToMetadataFileChange" ) );
-        
-        return suite;
-    }
-    
-    protected void setUp()
-    
-        throws CoreException
-        
-    {
-        assertFalse( ws.getRoot().getProject( TEST_PROJECT_NAME ).exists() );
-        
-        this.fpj = ProjectFacetsManager.create( TEST_PROJECT_NAME, null, null );
-        
-        this.pj = this.fpj.getProject();
-        addResourceToCleanup( this.pj );
-        assertTrue( this.fpj.getProject().exists() );
-        
-        this.fpj.installProjectFacet( f1v12, null, null );
-        assertEquals( this.fpj.getProjectFacets(), asSet( f1v12 ) );
-        
-        this.mdfile = this.pj.getFile( METADATA_FILE );
-    }
-    
-    public void testReactionToProjectDelete()
-    
-        throws CoreException
-        
-    {
-        this.pj.delete( true, null );
-        
-        waitForCondition( createNoFacetsCondition( this.fpj ) );
-        assertNull( ProjectFacetsManager.create( this.pj ) );
-        
-        try
-        {
-            this.fpj.installProjectFacet( f1v12, null, null );
-            fail();
-        }
-        catch( CoreException e )
-        {
-            verifyCannotModifyDeletedProjectException( e );
-        }
-        
-        try
-        {
-            this.fpj.setFixedProjectFacets( asSet( f1 ) );
-            fail();
-        }
-        catch( CoreException e )
-        {
-            verifyCannotModifyDeletedProjectException( e );
-        }
-        
-        try
-        {
-            this.fpj.setTargetedRuntimes( Collections.<IRuntime>emptySet(), null );
-            fail();
-        }
-        catch( CoreException e )
-        {
-            verifyCannotModifyDeletedProjectException( e );
-        }
-
-        try
-        {
-            this.fpj.setPrimaryRuntime( null, null );
-            fail();
-        }
-        catch( CoreException e )
-        {
-            verifyCannotModifyDeletedProjectException( e );
-        }
-    }
-    
-    private void verifyCannotModifyDeletedProjectException( final CoreException e )
-    {
-        final String expectedMessage = "Cannot modify a deleted project.";
-        assertTrue( e.getStatus().getMessage().equals( expectedMessage ) );
-    }
-
-    public void testReactionToMetadataFileDelete()
-    
-        throws CoreException
-        
-    {
-        this.mdfile.delete( true, null );
-
-        waitForCondition( createNoFacetsCondition( this.fpj ) );
-    }
-
-    public void testReactionToMetadataFileChange()
-    
-        throws CoreException, IOException
-        
-    {
-        String contents;
-        
-        contents = readFromFile( this.mdfile );
-        contents = contents.replaceFirst( "1.2", "2.0" );
-        writeToFile( this.mdfile, contents );
-        
-        waitForCondition( createFacetCondition( this.fpj, f1v20 ) );
-        
-        contents = contents.replaceFirst( "2.0", "1.2.1" );
-        writeToFile( this.mdfile, contents );
-        
-        waitForCondition( createFacetCondition( this.fpj, f1v121 ) );
-        
-        contents = contents.replaceFirst( "<installed facet=\"facet1\" version=\"1.2.1\"/>", "" );
-        writeToFile( this.mdfile, contents );
-        
-        waitForCondition( createNoFacetsCondition( this.fpj ) );
-    }
-    
-    private static ICondition createNoFacetsCondition( final IFacetedProject fpj )
-    {
-        return new ICondition()
-        {
-            public boolean check()
-            {
-                return fpj.getProjectFacets().size() == 0;
-            }
-        };
-    }
-    
-    private static ICondition createFacetCondition( final IFacetedProject fpj,
-                                                    final IProjectFacetVersion fv )
-    {
-        return new ICondition()
-        {
-            public boolean check()
-            {
-                return fpj.hasProjectFacet( fv );
-            }
-        };
-    }
-    
-}
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/ProjectCreationTests.java b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/ProjectCreationTests.java
deleted file mode 100644
index d93cf7f..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/ProjectCreationTests.java
+++ /dev/null
@@ -1,502 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.tests;
-
-import static org.eclipse.wst.common.project.facet.core.tests.support.TestUtils.readFromFile;
-import static org.eclipse.wst.common.project.facet.core.tests.support.TestUtils.writeToFile;
-
-import java.io.IOException;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.common.project.facet.core.FacetedProjectFramework;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.common.project.facet.core.internal.FacetedProject;
-import org.eclipse.wst.common.project.facet.core.tests.support.TestUtils;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class ProjectCreationTests
-
-    extends AbstractTests
-    
-{
-    private static final String FACETED_PROJECT_NATURE
-        = "org.eclipse.wst.common.project.facet.core.nature";
-    
-    private static IProjectFacet f1;
-    private static IProjectFacetVersion f1v1;
-
-    private static IProjectFacet f2;
-    private static IProjectFacetVersion f2v1;
-    private static IProjectFacetVersion f2v2;
-    
-    static
-    {
-        f1 = ProjectFacetsManager.getProjectFacet( "pct-f1" );
-        f1v1 = f1.getVersion( "1.0" );
-
-        f2 = ProjectFacetsManager.getProjectFacet( "pct-f2" );
-        f2v1 = f2.getVersion( "1.0" );
-        f2v2 = f2.getVersion( "2.0" );
-    }
-
-    private ProjectCreationTests( final String name )
-    {
-        super( name );
-    }
-    
-    public static Test suite()
-    {
-        final TestSuite suite = new TestSuite();
-        
-        suite.setName( "Project Creation Tests" );
-
-        suite.addTest( new ProjectCreationTests( "testCreationFromScratch1" ) );
-        suite.addTest( new ProjectCreationTests( "testCreationFromScratch2" ) );
-        suite.addTest( new ProjectCreationTests( "testCreationFromScratch3" ) );
-        suite.addTest( new ProjectCreationTests( "testCreationFromScratch4" ) );
-        suite.addTest( new ProjectCreationTests( "testCreationFromNonFacetedProject1" ) );
-        suite.addTest( new ProjectCreationTests( "testCreationFromNonFacetedProject2" ) );
-        suite.addTest( new ProjectCreationTests( "testCreationFromNonFacetedProject3" ) );
-        suite.addTest( new ProjectCreationTests( "testCreationFromNonFacetedProject4" ) );
-        suite.addTest( new ProjectCreationTests( "testWrapperCreation1" ) );
-        suite.addTest( new ProjectCreationTests( "testWrapperCreation2" ) );
-        suite.addTest( new ProjectCreationTests( "testWrapperCreation3" ) );
-        suite.addTest( new ProjectCreationTests( "testHasProjectFacet1" ) );
-        suite.addTest( new ProjectCreationTests( "testHasProjectFacet2" ) );
-        
-        return suite;
-    }
-
-    /**
-     * Tests {@link ProjectFacetsManager.create(String,IPath,IProgressMonitor)}
-     * method. In this scenario, there is no project with the same name.
-     * 
-     * @throws CoreException
-     * @throws IOException
-     */
-    
-    public void testCreationFromScratch1()
-    
-        throws CoreException, IOException
-        
-    {
-        final IFacetedProject fproj 
-            = ProjectFacetsManager.create( "abc", null, null );
-        
-        final IProject proj = fproj.getProject();
-        
-        assertNotNull( proj );
-        assertTrue( proj.exists() );
-        
-        this.resourcesToCleanup.add( proj );
-        
-        TestUtils.assertFileContains( proj.getFile( ".project" ), FACETED_PROJECT_NATURE );
-        
-        assertEquals( fproj.getFixedProjectFacets().size(), 0 );
-        assertEquals( fproj.getProjectFacets().size(), 0 );
-        assertEquals( fproj.getTargetedRuntimes().size(), 0 );
-        assertNull( fproj.getPrimaryRuntime() );
-    }
-    
-    /**
-     * Tests {@link ProjectFacetsManager.create(String,IPath,IProgressMonitor)}
-     * method. In this scenario, there is a faceted project with the same name.
-     * 
-     * @throws CoreException
-     * @throws IOException
-     */
-
-    public void testCreationFromScratch2()
-    
-        throws CoreException, IOException
-    
-    {
-        final IFacetedProject fproj 
-            = ProjectFacetsManager.create( "abc", null, null );
-        
-        this.resourcesToCleanup.add( fproj.getProject() );
-        
-        try
-        {
-            ProjectFacetsManager.create( "abc", null, null );
-            fail();
-        }
-        catch( CoreException e )
-        {
-            // expected
-        }
-    }
-
-    /**
-     * Tests {@link ProjectFacetsManager.create(String,IPath,IProgressMonitor)}
-     * method. In this scenario, there is a non-faceted project with the same
-     * name.
-     * 
-     * @throws CoreException
-     * @throws IOException
-     */
-    
-    public void testCreationFromScratch3()
-    
-        throws CoreException, IOException
-    
-    {
-        final IProject project = ws.getRoot().getProject( "abc" );
-        final IProjectDescription desc = ws.newProjectDescription( "abc" );
-
-        desc.setLocation( null );
-                
-        project.create( desc, null );
-        project.open( null );
-        
-        this.resourcesToCleanup.add( project );
-        
-        try
-        {
-            ProjectFacetsManager.create( "abc", null, null );
-            fail();
-        }
-        catch( CoreException e )
-        {
-            // expected
-        }
-    }
-
-    /**
-     * Tests {@link ProjectFacetsManager.create(String,IPath,IProgressMonitor)} method. In this 
-     * scenario, there was previously a faceted project at the specified location. The test 
-     * verifies that previously-installed facets are recognized after the project is resurrected.
-     * 
-     * @throws CoreException
-     * @throws IOException
-     */
-    
-    public void testCreationFromScratch4()
-    
-        throws CoreException, IOException
-    
-    {
-        IFacetedProject fproj;
-        
-        fproj = ProjectFacetsManager.create( "abc", null, null );
-        this.resourcesToCleanup.add( fproj.getProject() );
-        
-        fproj.installProjectFacet( f1v1, null, null );
-        fproj.installProjectFacet( f2v1, null, null );
-        
-        fproj.getProject().delete( false, false, null );
-        
-        fproj = ProjectFacetsManager.create( "abc", null, null );
-        
-        assertEquals( fproj.getFixedProjectFacets().size(), 0 );
-        assertEquals( fproj.getProjectFacets().size(), 2 );
-        assertTrue( fproj.hasProjectFacet( f1v1 ) );
-        assertTrue( fproj.hasProjectFacet( f2v1 ) );
-        assertEquals( fproj.getTargetedRuntimes().size(), 0 );
-        assertNull( fproj.getPrimaryRuntime() );
-    }
-    
-    /**
-     * Tests {@link ProjectFacetsManager.create(IProject,boolean,IProgressMonitor)}
-     * method. In this scenario project is not faceted and convertIfNecessary
-     * is set to true.
-     * 
-     * @throws CoreException
-     * @throws IOException
-     */
-    
-    public void testCreationFromNonFacetedProject1()
-    
-        throws CoreException, IOException
-    
-    {
-        final IProject project = ws.getRoot().getProject( "abc" );
-        final IProjectDescription desc = ws.newProjectDescription( "abc" );
-    
-        desc.setLocation( null );
-                
-        project.create( desc, null );
-        project.open( null );
-        
-        this.resourcesToCleanup.add( project );
-        
-        final IFacetedProject fproj
-            = ProjectFacetsManager.create( project, true, null );
-        
-        assertEquals( fproj.getFixedProjectFacets().size(), 0 );
-        assertEquals( fproj.getProjectFacets().size(), 0 );
-        assertEquals( fproj.getTargetedRuntimes().size(), 0 );
-        assertNull( fproj.getPrimaryRuntime() );
-    }
-
-    /**
-     * Tests {@link ProjectFacetsManager.create(IProject,boolean,IProgressMonitor)}
-     * method. In this scenario project is faceted and convertIfNecessary
-     * is set to true.
-     * 
-     * @throws CoreException
-     * @throws IOException
-     */
-    
-    public void testCreationFromNonFacetedProject2()
-    
-        throws CoreException, IOException
-    
-    {
-        final IFacetedProject prior 
-            = ProjectFacetsManager.create( "abc", null, null );
-        
-        final IProject project = prior.getProject();
-        
-        this.resourcesToCleanup.add( project );
-        
-        final IFacetedProject fproj
-            = ProjectFacetsManager.create( project, true, null );
-        
-        assertEquals( fproj.getFixedProjectFacets().size(), 0 );
-        assertEquals( fproj.getProjectFacets().size(), 0 );
-        assertEquals( fproj.getTargetedRuntimes().size(), 0 );
-        assertNull( fproj.getPrimaryRuntime() );
-    }
-    
-    /**
-     * Tests {@link ProjectFacetsManager.create(IProject,boolean,IProgressMonitor)}
-     * method. In this scenario project is faceted and convertIfNecessary
-     * is set to false.
-     * 
-     * @throws CoreException
-     * @throws IOException
-     */
-    
-    public void testCreationFromNonFacetedProject3()
-    
-        throws CoreException, IOException
-    
-    {
-        final IFacetedProject prior 
-            = ProjectFacetsManager.create( "abc", null, null );
-        
-        final IProject project = prior.getProject();
-        
-        this.resourcesToCleanup.add( project );
-        
-        final IFacetedProject fproj
-            = ProjectFacetsManager.create( project, false, null );
-        
-        assertEquals( fproj.getFixedProjectFacets().size(), 0 );
-        assertEquals( fproj.getProjectFacets().size(), 0 );
-        assertEquals( fproj.getTargetedRuntimes().size(), 0 );
-        assertNull( fproj.getPrimaryRuntime() );
-    }
-    
-    /**
-     * Tests {@link ProjectFacetsManager.create(IProject,boolean,IProgressMonitor)}
-     * method. In this scenario project is not faceted and convertIfNecessary
-     * is set to false.
-     * 
-     * @throws CoreException
-     * @throws IOException
-     */
-    
-    public void testCreationFromNonFacetedProject4()
-    
-        throws CoreException, IOException
-    
-    {
-        final IProject project = ws.getRoot().getProject( "abc" );
-        final IProjectDescription desc = ws.newProjectDescription( "abc" );
-    
-        desc.setLocation( null );
-                
-        project.create( desc, null );
-        project.open( null );
-        
-        this.resourcesToCleanup.add( project );
-        
-        assertNull( ProjectFacetsManager.create( project, false, null ) );
-    }
-    
-    /**
-     * Tests {@link ProjectFacetsManager.create(IProject)} method. This scenario
-     * validates that the wrapper cache is working and the same instance is
-     * returned when the create method is called multiple times.
-     * 
-     * @throws CoreException
-     */
-    
-    public void testWrapperCreation1()
-    
-        throws CoreException
-        
-    {
-        final IFacetedProject fproj 
-            = ProjectFacetsManager.create( "abc", null, null );
-        
-        final IProject proj = fproj.getProject();
-        this.resourcesToCleanup.add( proj );
-        
-        assertTrue( fproj == ProjectFacetsManager.create( proj ) );
-        assertTrue( fproj == ProjectFacetsManager.create( proj ) );
-        assertTrue( fproj == ProjectFacetsManager.create( proj ) );
-        assertTrue( fproj == ProjectFacetsManager.create( proj ) );
-        assertTrue( fproj == ProjectFacetsManager.create( proj ) );
-    }
-
-    /**
-     * Tests {@link ProjectFacetsManager.create(IProject)} method. In this
-     * scenario, the input project does not exist.
-     * 
-     * @throws CoreException
-     */
-    
-    public void testWrapperCreation2()
-    
-        throws CoreException
-        
-    {
-        final IProject proj = ws.getRoot().getProject( "abc" );
-        assertNull( ProjectFacetsManager.create( proj ) );
-    }
-
-    /**
-     * Tests {@link ProjectFacetsManager.create(IProject)} method. In this
-     * scenario, the input project is closed.
-     * 
-     * @throws CoreException
-     */
-    
-    public void testWrapperCreation3()
-    
-        throws CoreException
-        
-    {
-        final IFacetedProject fproj 
-            = ProjectFacetsManager.create( "abc", null, null );
-        
-        final IProject proj = fproj.getProject();
-        this.resourcesToCleanup.add( proj );
-        
-        proj.close( null );
-        
-        assertNull( ProjectFacetsManager.create( proj ) );
-    }
-    
-    /**
-     * Tests the various methods that check whether a particular facet is present in a project:<br/><br/>
-     * 
-     * {@link IFacetedProject.hasProjecFacet(IProjectFacet)}<br/>
-     * {@link IFacetedProject.hasProjecFacet(IProjectFacet)}<br/>
-     * {@link FacetedProjectFramework.hasProjectFacet(IProject,String,String)}</br><br/>
-     * 
-     * In this scenario, the facets being tested are known to the framework.
-     * 
-     * @throws CoreException
-     */
-    
-    public void testHasProjectFacet1()
-    
-        throws CoreException
-        
-    {
-        final IFacetedProject fproj 
-            = ProjectFacetsManager.create( "abc", null, null );
-        
-        final IProject proj = fproj.getProject();
-        this.resourcesToCleanup.add( proj );
-        
-        fproj.installProjectFacet( f1v1, null, null );
-        fproj.installProjectFacet( f2v1, null, null );
-        
-        assertTrue( fproj.hasProjectFacet( f1 ) );
-        assertTrue( fproj.hasProjectFacet( f1v1 ) );
-
-        assertTrue( fproj.hasProjectFacet( f2 ) );
-        assertTrue( fproj.hasProjectFacet( f2v1 ) );
-        assertFalse( fproj.hasProjectFacet( f2v2 ) );
-        
-        assertTrue( FacetedProjectFramework.hasProjectFacet( proj, f1.getId() ) );
-        assertTrue( FacetedProjectFramework.hasProjectFacet( proj, f1.getId(), null ) );
-        assertTrue( FacetedProjectFramework.hasProjectFacet( proj, f1.getId(), "1.0" ) );
-        assertTrue( FacetedProjectFramework.hasProjectFacet( proj, f1.getId(), "[0.5-3.7]" ) );
-        assertFalse( FacetedProjectFramework.hasProjectFacet( proj, f1.getId(), "2.3" ) );
-        assertFalse( FacetedProjectFramework.hasProjectFacet( proj, f1.getId(), "[2.3-5.8)" ) );
-        
-        assertTrue( FacetedProjectFramework.hasProjectFacet( proj, f2.getId() ) );
-        assertTrue( FacetedProjectFramework.hasProjectFacet( proj, f2.getId(), null ) );
-        assertTrue( FacetedProjectFramework.hasProjectFacet( proj, f2.getId(), "1.0" ) );
-        assertTrue( FacetedProjectFramework.hasProjectFacet( proj, f2.getId(), "[0.5-3.7]" ) );
-        assertFalse( FacetedProjectFramework.hasProjectFacet( proj, f2.getId(), "2.3" ) );
-        assertFalse( FacetedProjectFramework.hasProjectFacet( proj, f2.getId(), "[2.3-5.8)" ) );
-    }
-    
-    /**
-     * Tests the various methods that check whether a particular facet is present in a project:<br/><br/>
-     * 
-     * {@link FacetedProjectFramework.hasProjectFacet(IProject,String,String)}</br><br/>
-     * 
-     * In this scenario, the facets being tested are not known to the framework. This comes up as part of
-     * upgrade and transition scenarios where facets previously installed are no longer defined.
-     * 
-     * @throws CoreException
-     */
-    
-    public void testHasProjectFacet2()
-    
-        throws CoreException, IOException
-        
-    {
-        final IFacetedProject fproj 
-            = ProjectFacetsManager.create( "abc", null, null );
-        
-        final IProject proj = fproj.getProject();
-        this.resourcesToCleanup.add( proj );
-        
-        fproj.installProjectFacet( f1v1, null, null );
-        fproj.installProjectFacet( f2v1, null, null );
-        
-        final IFile fpjMdFile = proj.getFile( FacetedProject.METADATA_FILE );
-        
-        String fpjMdFileContents = readFromFile( fpjMdFile );
-        fpjMdFileContents = fpjMdFileContents.replace( "pct-f1", "foo" );
-        fpjMdFileContents = fpjMdFileContents.replace( "<installed facet=\"pct-f2\" version=\"1.0\"/>", "<installed facet=\"pct-f2\" version=\"1.1\"/>" );
-        writeToFile( fpjMdFile, fpjMdFileContents );
-        
-        assertTrue( FacetedProjectFramework.hasProjectFacet( proj, "foo" ) );
-        assertTrue( FacetedProjectFramework.hasProjectFacet( proj, "foo", null ) );
-        assertTrue( FacetedProjectFramework.hasProjectFacet( proj, "foo", "1.0" ) );
-        assertTrue( FacetedProjectFramework.hasProjectFacet( proj, "foo", "[0.5-3.7]" ) );
-        assertFalse( FacetedProjectFramework.hasProjectFacet( proj, "foo", "2.3" ) );
-        assertFalse( FacetedProjectFramework.hasProjectFacet( proj, "foo", "[2.3-5.8)" ) );
-        
-        assertTrue( FacetedProjectFramework.hasProjectFacet( proj, f2.getId() ) );
-        assertTrue( FacetedProjectFramework.hasProjectFacet( proj, f2.getId(), null ) );
-        assertTrue( FacetedProjectFramework.hasProjectFacet( proj, f2.getId(), "1.1" ) );
-        assertTrue( FacetedProjectFramework.hasProjectFacet( proj, f2.getId(), "[0.5-3.7]" ) );
-        assertFalse( FacetedProjectFramework.hasProjectFacet( proj, f2.getId(), "2.3" ) );
-        assertFalse( FacetedProjectFramework.hasProjectFacet( proj, f2.getId(), "[2.3-5.8)" ) );
-
-        assertFalse( FacetedProjectFramework.hasProjectFacet( proj, "abc" ) );
-        assertFalse( FacetedProjectFramework.hasProjectFacet( proj, "abc", null ) );
-    }
-}
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/CustomVersionComparator.java b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/CustomVersionComparator.java
deleted file mode 100644
index cab08f0..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/CustomVersionComparator.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.tests.support;
-
-import org.eclipse.wst.common.project.facet.core.DefaultVersionComparator;
-import org.eclipse.wst.common.project.facet.core.VersionFormatException;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class CustomVersionComparator
-
-    extends DefaultVersionComparator
-    
-{
-    protected String getSeparators()
-    {
-        return ".#";
-    }
-    
-    protected Comparable parse( final String version,
-                                final String segment,
-                                final int position )
-    
-        throws VersionFormatException
-        
-    {
-        if( position == 2 )
-        {
-            return new Inverter( segment );
-        }
-        else
-        {
-            return super.parse( version, segment, position );
-        }
-    }
-    
-    public static class Inverter
-    
-        implements Comparable
-        
-    {
-        private final Comparable base;
-        
-        public Inverter( final Comparable base )
-        {
-            this.base = base;
-        }
-        
-        public boolean equals( final Object obj )
-        {
-            if( ! ( obj instanceof Inverter ) )
-            {
-                return false;
-            }
-            else
-            {
-                return this.base.equals( ( (Inverter) obj ).base );
-            }
-        }
-        
-        public int compareTo( final Object obj )
-        {
-            return -1 * this.base.compareTo( ( (Inverter) obj ).base );
-        }
-    }
-
-}
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/Facet1InstallDelegate.java b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/Facet1InstallDelegate.java
deleted file mode 100644
index ee7af79..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/Facet1InstallDelegate.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.tests.support;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.common.project.facet.core.IDelegate;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class Facet1InstallDelegate
-
-    implements IDelegate
-    
-{
-    public void execute( final IProject project, 
-                         final IProjectFacetVersion fv, 
-                         final Object config, 
-                         final IProgressMonitor monitor ) 
-    
-        throws CoreException
-        
-    {
-        final IFile file = project.getFile( "facet1.txt" );
-        TestUtils.writeToFile( file, fv.getVersionString() );
-    }
-    
-}
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/Facet1UninstallDelegate.java b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/Facet1UninstallDelegate.java
deleted file mode 100644
index 8836770..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/Facet1UninstallDelegate.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.tests.support;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.common.project.facet.core.IDelegate;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class Facet1UninstallDelegate
-
-    implements IDelegate
-    
-{
-    public void execute( final IProject project, 
-                         final IProjectFacetVersion fv, 
-                         final Object config, 
-                         final IProgressMonitor monitor ) 
-    
-        throws CoreException
-        
-    {
-        final IFile file = project.getFile( "facet1.txt" );
-        file.delete( true, null );
-    }
-    
-}
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/Facet1VersionChangeDelegate.java b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/Facet1VersionChangeDelegate.java
deleted file mode 100644
index 3934e03..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/Facet1VersionChangeDelegate.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.tests.support;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.common.project.facet.core.IDelegate;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class Facet1VersionChangeDelegate
-
-    implements IDelegate
-    
-{
-    public void execute( final IProject project, 
-                         final IProjectFacetVersion fv, 
-                         final Object config, 
-                         final IProgressMonitor monitor ) 
-    
-        throws CoreException
-        
-    {
-        final IFile file = project.getFile( "facet1.txt" );
-        TestUtils.writeToFile( file, fv.getVersionString() );
-    }
-    
-}
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/Facet3aInstallDelegate.java b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/Facet3aInstallDelegate.java
deleted file mode 100644
index 664d7f2..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/Facet3aInstallDelegate.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.tests.support;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.common.project.facet.core.IDelegate;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class Facet3aInstallDelegate
-
-    implements IDelegate
-    
-{
-    public void execute( final IProject project, 
-                         final IProjectFacetVersion fv, 
-                         final Object config, 
-                         final IProgressMonitor monitor ) 
-    
-        throws CoreException
-        
-    {
-        final IFile file = project.getFile( "facet3a.txt" );
-        TestUtils.writeToFile( file, fv.getVersionString() );
-    }
-    
-}
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/Facet3aUninstallDelegate.java b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/Facet3aUninstallDelegate.java
deleted file mode 100644
index c85a107..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/Facet3aUninstallDelegate.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.tests.support;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.common.project.facet.core.IDelegate;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class Facet3aUninstallDelegate
-
-    implements IDelegate
-    
-{
-    public void execute( final IProject project, 
-                         final IProjectFacetVersion fv, 
-                         final Object config, 
-                         final IProgressMonitor monitor ) 
-    
-        throws CoreException
-        
-    {
-        final IFile file = project.getFile( "facet3a.txt" );
-        file.delete( true, null );
-    }
-    
-}
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/Facet3aVersionChangeDelegate.java b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/Facet3aVersionChangeDelegate.java
deleted file mode 100644
index 5d7c86a..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/Facet3aVersionChangeDelegate.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.tests.support;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.common.project.facet.core.IDelegate;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class Facet3aVersionChangeDelegate
-
-    implements IDelegate
-    
-{
-    public void execute( final IProject project, 
-                         final IProjectFacetVersion fv, 
-                         final Object config, 
-                         final IProgressMonitor monitor ) 
-    
-        throws CoreException
-        
-    {
-        final IFile file = project.getFile( "facet3a.txt" );
-        TestUtils.writeToFile( file, fv.getVersionString() );
-    }
-    
-}
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/NoOpDelegate.java b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/NoOpDelegate.java
deleted file mode 100644
index 1d2f3ba..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/NoOpDelegate.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.tests.support;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.common.project.facet.core.IDelegate;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class NoOpDelegate
-
-    implements IDelegate
-    
-{
-    public void execute( final IProject project, 
-                         final IProjectFacetVersion fv, 
-                         final Object config, 
-                         final IProgressMonitor monitor ) 
-    {
-        // do nothing
-    }
-    
-}
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/TestUtils.java b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/TestUtils.java
deleted file mode 100644
index 218cee6..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/TestUtils.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.tests.support;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.io.UnsupportedEncodingException;
-import java.util.Arrays;
-import java.util.LinkedHashSet;
-import java.util.Set;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public class TestUtils
-{
-    public static void writeToFile( final IFile file,
-                                    final String contents )
-    
-        throws CoreException
-        
-    {
-        try
-        {
-            final byte[] bytes = contents.getBytes( "UTF-8" );
-            
-            if( file.exists() )
-            {
-                file.setContents( new ByteArrayInputStream( bytes ),
-                                  false, false, null );
-            }
-            else
-            {
-                file.create( new ByteArrayInputStream( bytes ), false, null );
-            }
-        }
-        catch( UnsupportedEncodingException e )
-        {
-            throw new RuntimeException( e );
-        }
-    }
-    
-    public static String readFromFile( final IFile file )
-    
-        throws CoreException, IOException
-        
-    {
-        TestCase.assertTrue( file.exists() );
-        
-        final StringBuffer buf = new StringBuffer();
-        final Reader r = new InputStreamReader( file.getContents() );
-        
-        try
-        {
-            char[] chars = new char[ 1024 ];
-            
-            for( int count; ( count = r.read( chars ) ) != -1; )
-            {
-                buf.append( chars, 0, count );
-            }
-        }
-        finally
-        {
-            try
-            {
-                r.close();
-            }
-            catch( IOException e ) {}
-        }
-        
-        return buf.toString();
-    }
-    
-    
-    public static void assertEquals( final IFile file,
-                                     final String expectedContents )
-    
-        throws CoreException, IOException
-        
-    {
-        TestCase.assertEquals( readFromFile( file ), expectedContents );
-    }
-    
-    public static void assertFileContains( final IFile file,
-                                           final String str )
-    
-        throws CoreException, IOException
-        
-    {
-        TestCase.assertTrue( readFromFile( file ).indexOf( str ) != -1 );
-    }
-    
-    public static void waitForCondition( final ICondition condition )
-    {
-        waitForCondition( condition, 10 );
-    }
-    
-    public static void waitForCondition( final ICondition condition,
-                                         final int seconds )
-    {
-        for( int i = 0; i < seconds && ! condition.check(); i++ )
-        {
-            try
-            {
-                Thread.sleep( 1000 );
-            }
-            catch( InterruptedException e ) {}
-        }
-        
-        TestCase.assertTrue( condition.check() );
-    }
-    
-    public static interface ICondition
-    {
-        boolean check();
-    }
-    
-    public static <T> Set<T> asSet( final T... objects )
-    {
-        final Set<T> set = new LinkedHashSet<T>();
-        set.addAll( Arrays.asList( objects ) );
-        return set;
-    }
-    
-}
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/test.xml b/tests/org.eclipse.wst.common.project.facet.core.tests/test.xml
deleted file mode 100644
index f1b343d..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/test.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0"?>
-
-<project name="testsuite" default="run" basedir=".">
-
-  <echo message="basedir ${basedir}" />
-  <echo message="eclipse place ${eclipse-home}" />
-  
-  <property name="plugin-name" value="org.eclipse.wst.common.project.facet.core.tests"/>
-  <property name="library-file" value="${eclipse-home}/plugins/org.eclipse.test_3.1.0/library.xml"/>
-
-  <!-- This target holds all initialization code that needs to be done for -->
-  <!-- all tests that are to be run. Initialization for individual tests -->
-  <!-- should be done within the body of the suite target. -->
-  
-  <target name="init">
-    <tstamp/>
-    <delete>
-      <fileset dir="${eclipse-home}" includes="${plugin-name}*.xml"/>
-    </delete>
-  </target>
-
-  <!-- This target defines the tests that need to be run. -->
-  
-  <target name="suite">
-    <property name="wst-folder" value="${eclipse-home}/wst_folder"/>
-    <delete dir="${wst-folder}" quiet="true"/>
-    <ant target="core-test" antfile="${library-file}" dir="${eclipse-home}">
-      <property name="data-dir" value="${wst-folder}"/>
-      <property name="plugin-name" value="${plugin-name}"/>
-      <property name="classname" value="org.eclipse.wst.common.project.facet.core.tests.AllTests" />
-      <property name="plugin-path" value="${eclipse-home}/plugins/${plugin-name}"/>
-    </ant>
-  </target>
-
-  <!-- This target holds code to cleanup the testing environment after -->
-  <!-- after all of the tests have been run. You can use this target to -->
-  <!-- delete temporary files that have been created. -->
-  
-  <target name="cleanup">
-  </target>
-
-  <!-- This target runs the test suite. Any actions that need to happen -->
-  <!-- after all the tests have been run should go here. -->
-  
-  <target name="run" depends="init,suite,cleanup">
-    <ant target="collect" antfile="${library-file}" dir="${eclipse-home}">
-      <property name="includes" value="${plugin-name}*.xml"/>
-      <property name="output-file" value="${plugin-name}.xml"/>
-    </ant>
-  </target>
-  
-</project>
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.common.project.facet.ui.tests/.classpath b/tests/org.eclipse.wst.common.project.facet.ui.tests/.classpath
deleted file mode 100644
index 304e861..0000000
--- a/tests/org.eclipse.wst.common.project.facet.ui.tests/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/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/tests/org.eclipse.wst.common.project.facet.ui.tests/.cvsignore b/tests/org.eclipse.wst.common.project.facet.ui.tests/.cvsignore
deleted file mode 100644
index 3bfac44..0000000
--- a/tests/org.eclipse.wst.common.project.facet.ui.tests/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-build.xml
-javaCompiler.tests.jar.args
diff --git a/tests/org.eclipse.wst.common.project.facet.ui.tests/.project b/tests/org.eclipse.wst.common.project.facet.ui.tests/.project
deleted file mode 100644
index 6b5d310..0000000
--- a/tests/org.eclipse.wst.common.project.facet.ui.tests/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.common.project.facet.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/tests/org.eclipse.wst.common.project.facet.ui.tests/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.wst.common.project.facet.ui.tests/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 7a5f1c3..0000000
--- a/tests/org.eclipse.wst.common.project.facet.ui.tests/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Fri Feb 02 16:51:39 PST 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/tests/org.eclipse.wst.common.project.facet.ui.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.wst.common.project.facet.ui.tests/META-INF/MANIFEST.MF
deleted file mode 100644
index f920b5f..0000000
--- a/tests/org.eclipse.wst.common.project.facet.ui.tests/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,12 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Vendor: Eclipse.org
-Bundle-Name: Facet UI Tests Plug-in
-Bundle-SymbolicName: org.eclipse.wst.common.project.facet.ui.tests;singleton:=true
-Bundle-Version: 1.4.0.qualifier
-Require-Bundle: org.eclipse.wst.common.project.facet.ui,
- org.eclipse.wst.common.project.facet.core.tests,
- org.eclipse.core.resources
-Bundle-ClassPath: tests.jar
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Bundle-Localization: plugin
diff --git a/tests/org.eclipse.wst.common.project.facet.ui.tests/about.html b/tests/org.eclipse.wst.common.project.facet.ui.tests/about.html
deleted file mode 100644
index 0799bdb..0000000
--- a/tests/org.eclipse.wst.common.project.facet.ui.tests/about.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-
-<BODY lang="EN-US">
-
-<H3>About This Content</H3>
-
-<P>June, 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/tests/org.eclipse.wst.common.project.facet.ui.tests/build.properties b/tests/org.eclipse.wst.common.project.facet.ui.tests/build.properties
deleted file mode 100644
index e3df3db..0000000
--- a/tests/org.eclipse.wst.common.project.facet.ui.tests/build.properties
+++ /dev/null
@@ -1,9 +0,0 @@
-bin.includes = META-INF/,\
-               plugin.xml,\
-               tests.jar,\
-               about.html,\
-               plugin.properties,\
-               images/
-jars.compile.order = tests.jar
-source.tests.jar = src/
-output.tests.jar = bin/
diff --git a/tests/org.eclipse.wst.common.project.facet.ui.tests/images/unknown.gif b/tests/org.eclipse.wst.common.project.facet.ui.tests/images/unknown.gif
deleted file mode 100644
index 7ccc6a7..0000000
--- a/tests/org.eclipse.wst.common.project.facet.ui.tests/images/unknown.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.common.project.facet.ui.tests/plugin.properties b/tests/org.eclipse.wst.common.project.facet.ui.tests/plugin.properties
deleted file mode 100644
index a3370ff..0000000
--- a/tests/org.eclipse.wst.common.project.facet.ui.tests/plugin.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-#Properties file for org.eclipse.wst.common.project.facet.ui.tests
-Bundle-Vendor.0 = Eclipse.org
-Bundle-Name.0 = Facet UI Tests Plug-in
-wizard.name.0 = Faceted Project Test Wizard
-wizard.description.0 = This wizard is used to test the Faceted Project Wizard.
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.common.project.facet.ui.tests/plugin.xml b/tests/org.eclipse.wst.common.project.facet.ui.tests/plugin.xml
deleted file mode 100644
index 1cc0f6a..0000000
--- a/tests/org.eclipse.wst.common.project.facet.ui.tests/plugin.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-
-<plugin>
-  
-  <extension point="org.eclipse.wst.common.project.facet.core.facets">
-    
-    <category id="ui.category">
-      <label>UI Test Category</label>
-      <description>This is the category description.</description>
-    </category>
-
-    <project-facet id="ui.f1">
-      <label>Facet 1</label>
-      <description>This is the description of facet1.</description>
-      <member category="ui.category"/>
-    </project-facet>
-
-    <project-facet-version facet="ui.f1" version="1.0">
-      <action type="INSTALL">
-        <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-      </action>
-    </project-facet-version>
-
-    <project-facet id="ui.f2">
-      <label>Facet 2</label>
-      <description>This is the description of facet2.</description>
-      <member category="ui.category"/>
-    </project-facet>
-
-    <project-facet-version facet="ui.f2" version="1.0">
-      <action type="INSTALL">
-        <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-      </action>
-    </project-facet-version>
-    
-    <template id="ui.base.wizard.template">
-      <label>Faceted Project</label>
-    </template>
-    
-  </extension>
-
-   <extension point="org.eclipse.ui.newWizards">
-      <wizard 
-        name="%wizard.name.0"
-        id="org.eclipse.wst.common.project.facet.ui.tests.TestProjectWizard"
-        class="org.eclipse.wst.common.project.facet.ui.tests.TestProjectWizard"
-        icon="images/unknown.gif"
-        project="true">
-        <description>
-          %wizard.description.0
-        </description>
-        <selection class="org.eclipse.core.resources.IResource"/>
-      </wizard>
-   </extension>
-
-</plugin>
diff --git a/tests/org.eclipse.wst.common.project.facet.ui.tests/src/org/eclipse/wst/common/project/facet/ui/tests/TestProjectWizard.java b/tests/org.eclipse.wst.common.project.facet.ui.tests/src/org/eclipse/wst/common/project/facet/ui/tests/TestProjectWizard.java
deleted file mode 100644
index aff122a..0000000
--- a/tests/org.eclipse.wst.common.project.facet.ui.tests/src/org/eclipse/wst/common/project/facet/ui/tests/TestProjectWizard.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package org.eclipse.wst.common.project.facet.ui.tests;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectTemplate;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.common.project.facet.ui.FacetedProjectWizard;
-
-public final class TestProjectWizard
-
-    extends FacetedProjectWizard
-    
-{
-    public TestProjectWizard()
-    {
-        setCategoryExpandedState( ProjectFacetsManager.getCategory( "ui.category" ), true );
-    }
-    
-    @Override
-    protected ImageDescriptor getDefaultPageImageDescriptor()
-    {
-        return null;
-    }
-
-    @Override
-    protected String getPageDescription()
-    {
-        return "This wizard is used to test the Faceted Project Wizard.";
-    }
-
-    @Override
-    protected IFacetedProjectTemplate getTemplate()
-    {
-        return ProjectFacetsManager.getTemplate( "ui.base.wizard.template" );
-    }
-
-}