This commit was manufactured by cvs2svn to create tag 'R3_2_4'.
diff --git a/assembly/features/org.eclipse.jsf.assembly.feature/.cvsignore b/assembly/features/org.eclipse.jsf.assembly.feature/.cvsignore
new file mode 100644
index 0000000..49d8479
--- /dev/null
+++ b/assembly/features/org.eclipse.jsf.assembly.feature/.cvsignore
@@ -0,0 +1,3 @@
+*.bin.dist.zip
+build.xml
+feature.temp.folder
diff --git a/assembly/features/org.eclipse.jsf.assembly.feature/.project b/assembly/features/org.eclipse.jsf.assembly.feature/.project
new file mode 100644
index 0000000..5adb9e2
--- /dev/null
+++ b/assembly/features/org.eclipse.jsf.assembly.feature/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.jsf.assembly.feature</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.pde.FeatureBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.FeatureNature</nature>
+	</natures>
+</projectDescription>
diff --git a/assembly/features/org.eclipse.jsf.assembly.feature/.settings/org.eclipse.core.resources.prefs b/assembly/features/org.eclipse.jsf.assembly.feature/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..fa491bf
--- /dev/null
+++ b/assembly/features/org.eclipse.jsf.assembly.feature/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,3 @@
+#Sun May 27 16:00:47 EDT 2007
+eclipse.preferences.version=1
+encoding/<project>=ISO-8859-1
diff --git a/assembly/features/org.eclipse.jsf.assembly.feature/build.properties b/assembly/features/org.eclipse.jsf.assembly.feature/build.properties
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/assembly/features/org.eclipse.jsf.assembly.feature/build.properties
@@ -0,0 +1 @@
+
diff --git a/assembly/features/org.eclipse.jsf.assembly.feature/eclipse_update_120.jpg b/assembly/features/org.eclipse.jsf.assembly.feature/eclipse_update_120.jpg
new file mode 100644
index 0000000..bfdf708
--- /dev/null
+++ b/assembly/features/org.eclipse.jsf.assembly.feature/eclipse_update_120.jpg
Binary files differ
diff --git a/assembly/features/org.eclipse.jsf.assembly.feature/epl-v10.html b/assembly/features/org.eclipse.jsf.assembly.feature/epl-v10.html
new file mode 100644
index 0000000..022ad29
--- /dev/null
+++ b/assembly/features/org.eclipse.jsf.assembly.feature/epl-v10.html
@@ -0,0 +1,328 @@
+<html xmlns:o="urn:schemas-microsoft-com:office:office"
+xmlns:w="urn:schemas-microsoft-com:office:word"
+xmlns="http://www.w3.org/TR/REC-html40">
+
+<head>
+<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
+<meta name=ProgId content=Word.Document>
+<meta name=Generator content="Microsoft Word 9">
+<meta name=Originator content="Microsoft Word 9">
+<link rel=File-List
+href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
+<title>Eclipse Public License - Version 1.0</title>
+<!--[if gte mso 9]><xml>
+ <o:DocumentProperties>
+  <o:Revision>2</o:Revision>
+  <o:TotalTime>3</o:TotalTime>
+  <o:Created>2004-03-05T23:03:00Z</o:Created>
+  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
+  <o:Pages>4</o:Pages>
+  <o:Words>1626</o:Words>
+  <o:Characters>9270</o:Characters>
+   <o:Lines>77</o:Lines>
+  <o:Paragraphs>18</o:Paragraphs>
+  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
+  <o:Version>9.4402</o:Version>
+ </o:DocumentProperties>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <w:WordDocument>
+  <w:TrackRevisions/>
+ </w:WordDocument>
+</xml><![endif]-->
+<style>
+<!--
+ /* Font Definitions */
+@font-face
+	{font-family:Tahoma;
+	panose-1:2 11 6 4 3 5 4 4 2 4;
+	mso-font-charset:0;
+	mso-generic-font-family:swiss;
+	mso-font-pitch:variable;
+	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
+ /* Style Definitions */
+p.MsoNormal, li.MsoNormal, div.MsoNormal
+	{mso-style-parent:"";
+	margin:0in;
+	margin-bottom:.0001pt;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	font-family:"Times New Roman";
+	mso-fareast-font-family:"Times New Roman";}
+p
+	{margin-right:0in;
+	mso-margin-top-alt:auto;
+	mso-margin-bottom-alt:auto;
+	margin-left:0in;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	font-family:"Times New Roman";
+	mso-fareast-font-family:"Times New Roman";}
+p.BalloonText, li.BalloonText, div.BalloonText
+	{mso-style-name:"Balloon Text";
+	margin:0in;
+	margin-bottom:.0001pt;
+	mso-pagination:widow-orphan;
+	font-size:8.0pt;
+	font-family:Tahoma;
+	mso-fareast-font-family:"Times New Roman";}
+@page Section1
+	{size:8.5in 11.0in;
+	margin:1.0in 1.25in 1.0in 1.25in;
+	mso-header-margin:.5in;
+	mso-footer-margin:.5in;
+	mso-paper-source:0;}
+div.Section1
+	{page:Section1;}
+-->
+</style>
+</head>
+
+<body lang=EN-US style='tab-interval:.5in'>
+
+<div class=Section1>
+
+<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
+</p>
+
+<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
+THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
+REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
+OF THIS AGREEMENT.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+in the case of the initial Contributor, the initial code and documentation
+distributed under this Agreement, and<br clear=left>
+b) in the case of each subsequent Contributor:</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
+changes to the Program, and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
+additions to the Program;</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
+such changes and/or additions to the Program originate from and are distributed
+by that particular Contributor. A Contribution 'originates' from a Contributor
+if it was added to the Program by such Contributor itself or anyone acting on
+such Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in conjunction
+with the Program under their own license agreement, and (ii) are not derivative
+works of the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
+entity that distributes the Program.</span> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
+claims licensable by a Contributor which are necessarily infringed by the use
+or sale of its Contribution alone or when combined with the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
+distributed in accordance with this Agreement.</span> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
+receives the Program under this Agreement, including all Contributors.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+Subject to the terms of this Agreement, each Contributor hereby grants Recipient
+a non-exclusive, worldwide, royalty-free copyright license to<span
+style='color:red'> </span>reproduce, prepare derivative works of, publicly
+display, publicly perform, distribute and sublicense the Contribution of such
+Contributor, if any, and such derivative works, in source code and object code
+form.</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
+Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
+patent license under Licensed Patents to make, use, sell, offer to sell, import
+and otherwise transfer the Contribution of such Contributor, if any, in source
+code and object code form. This patent license shall apply to the combination
+of the Contribution and the Program if, at the time the Contribution is added
+by the Contributor, such addition of the Contribution causes such combination
+to be covered by the Licensed Patents. The patent license shall not apply to
+any other combinations which include the Contribution. No hardware per se is
+licensed hereunder. </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
+Recipient understands that although each Contributor grants the licenses to its
+Contributions set forth herein, no assurances are provided by any Contributor
+that the Program does not infringe the patent or other intellectual property
+rights of any other entity. Each Contributor disclaims any liability to Recipient
+for claims brought by any other entity based on infringement of intellectual
+property rights or otherwise. As a condition to exercising the rights and
+licenses granted hereunder, each Recipient hereby assumes sole responsibility
+to secure any other intellectual property rights needed, if any. For example,
+if a third party patent license is required to allow Recipient to distribute
+the Program, it is Recipient's responsibility to acquire that license before
+distributing the Program.</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
+Each Contributor represents that to its knowledge it has sufficient copyright
+rights in its Contribution, if any, to grant the copyright license set forth in
+this Agreement. </span></p>
+
+<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
+
+<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
+Program in object code form under its own license agreement, provided that:</span>
+</p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+it complies with the terms and conditions of this Agreement; and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
+its license agreement:</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
+effectively disclaims on behalf of all Contributors all warranties and
+conditions, express and implied, including warranties or conditions of title
+and non-infringement, and implied warranties or conditions of merchantability
+and fitness for a particular purpose; </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
+effectively excludes on behalf of all Contributors all liability for damages,
+including direct, indirect, special, incidental and consequential damages, such
+as lost profits; </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
+states that any provisions which differ from this Agreement are offered by that
+Contributor alone and not by any other party; and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
+states that source code for the Program is available from such Contributor, and
+informs licensees how to obtain it in a reasonable manner on or through a
+medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
+
+<p><span style='font-size:10.0pt'>When the Program is made available in source
+code form:</span> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+it must be made available under this Agreement; and </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
+copy of this Agreement must be included with each copy of the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
+copyright notices contained within the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
+originator of its Contribution, if any, in a manner that reasonably allows
+subsequent Recipients to identify the originator of the Contribution. </span></p>
+
+<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
+
+<p><span style='font-size:10.0pt'>Commercial distributors of software may
+accept certain responsibilities with respect to end users, business partners
+and the like. While this license is intended to facilitate the commercial use
+of the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create potential
+liability for other Contributors. Therefore, if a Contributor includes the
+Program in a commercial product offering, such Contributor (&quot;Commercial
+Contributor&quot;) hereby agrees to defend and indemnify every other
+Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
+costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
+legal actions brought by a third party against the Indemnified Contributor to
+the extent caused by the acts or omissions of such Commercial Contributor in
+connection with its distribution of the Program in a commercial product
+offering. The obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In order
+to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor
+to control, and cooperate with the Commercial Contributor in, the defense and
+any related settlement negotiations. The Indemnified Contributor may participate
+in any such claim at its own expense.</span> </p>
+
+<p><span style='font-size:10.0pt'>For example, a Contributor might include the
+Program in a commercial product offering, Product X. That Contributor is then a
+Commercial Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance claims and
+warranties are such Commercial Contributor's responsibility alone. Under this
+section, the Commercial Contributor would have to defend claims against the
+other Contributors related to those performance claims and warranties, and if a
+court requires any other Contributor to pay any damages as a result, the
+Commercial Contributor must pay those damages.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
+
+<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
+WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
+MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and distributing the
+Program and assumes all risks associated with its exercise of rights under this
+Agreement , including but not limited to the risks and costs of program errors,
+compliance with applicable laws, damage to or loss of data, programs or
+equipment, and unavailability or interruption of operations. </span></p>
+
+<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
+
+<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
+THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
+
+<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
+or unenforceable under applicable law, it shall not affect the validity or
+enforceability of the remainder of the terms of this Agreement, and without
+further action by the parties hereto, such provision shall be reformed to the
+minimum extent necessary to make such provision valid and enforceable.</span> </p>
+
+<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
+against any entity (including a cross-claim or counterclaim in a lawsuit)
+alleging that the Program itself (excluding combinations of the Program with
+other software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the date
+such litigation is filed. </span></p>
+
+<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
+shall terminate if it fails to comply with any of the material terms or
+conditions of this Agreement and does not cure such failure in a reasonable
+period of time after becoming aware of such noncompliance. If all Recipient's
+rights under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive. </span></p>
+
+<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
+copies of this Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The Agreement
+Steward reserves the right to publish new versions (including revisions) of
+this Agreement from time to time. No one other than the Agreement Steward has
+the right to modify this Agreement. The Eclipse Foundation is the initial
+Agreement Steward. The Eclipse Foundation may assign the responsibility to
+serve as the Agreement Steward to a suitable separate entity. Each new version
+of the Agreement will be given a distinguishing version number. The Program
+(including Contributions) may always be distributed subject to the version of
+the Agreement under which it was received. In addition, after a new version of
+the Agreement is published, Contributor may elect to distribute the Program
+(including its Contributions) under the new version. Except as expressly stated
+in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
+the intellectual property of any Contributor under this Agreement, whether
+expressly, by implication, estoppel or otherwise. All rights in the Program not
+expressly granted under this Agreement are reserved.</span> </p>
+
+<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
+State of New York and the intellectual property laws of the United States of
+America. No party to this Agreement will bring a legal action under this
+Agreement more than one year after the cause of action arose. Each party waives
+its rights to a jury trial in any resulting litigation.</span> </p>
+
+<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+</div>
+
+</body>
+
+</html>
diff --git a/assembly/features/org.eclipse.jsf.assembly.feature/feature.properties b/assembly/features/org.eclipse.jsf.assembly.feature/feature.properties
new file mode 100644
index 0000000..dca2899
--- /dev/null
+++ b/assembly/features/org.eclipse.jsf.assembly.feature/feature.properties
@@ -0,0 +1,150 @@
+###############################################################################
+# Copyright (c) 2005 Oracle Corporation.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#     Oracle Corporation - initial API and implementation
+###############################################################################
+name=JavaServer Faces Tools (JSF) Project
+provider=Eclipse Web Tools Platform
+description=WTP JavaServer Faces Tools (JSF) Project 
+
+# "copyright" property - text of the "Feature Update Copyright"
+copyright=\
+Copyright (c) 2006 Oracle Corporation.\
+All rights reserved. This program and the accompanying materials\
+are made available under the terms of the Eclipse Public License v1.0\
+which accompanies this distribution, and is available at\
+http://www.eclipse.org/legal/epl-v10.html\
+\n\
+Contributors:\n\
+    Oracle Corporation - initial API and implementation\n
+################ end of copyright property ####################################
+
+license=\
+Eclipse Foundation Software User Agreement\n\
+April 14, 2010\n\
+\n\
+Usage Of Content\n\
+\n\
+THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
+OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
+USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
+AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
+NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU\n\
+AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
+AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
+OR NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE\n\
+TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
+OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
+BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
+\n\
+Applicable Licenses\n\
+\n\
+Unless otherwise indicated, all Content made available by the\n\
+Eclipse Foundation is provided to you under the terms and conditions of\n\
+the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
+provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
+For purposes of the EPL, "Program" will mean the Content.\n\
+\n\
+Content includes, but is not limited to, source code, object code,\n\
+documentation and other files maintained in the Eclipse Foundation source code\n\
+repository ("Repository") in software modules ("Modules") and made available\n\
+as downloadable archives ("Downloads").\n\
+\n\
+       - Content may be structured and packaged into modules to facilitate delivering,\n\
+         extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
+         plug-in fragments ("Fragments"), and features ("Features").\n\
+       - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
+         in a directory named "plugins".\n\
+       - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
+         Each Feature may be packaged as a sub-directory in a directory named "features".\n\
+         Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
+         numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
+       - Features may also include other Features ("Included Features"). Within a Feature, files\n\
+         named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
+\n\
+The terms and conditions governing Plug-ins and Fragments should be\n\
+contained in files named "about.html" ("Abouts"). The terms and\n\
+conditions governing Features and Included Features should be contained\n\
+in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
+Licenses may be located in any directory of a Download or Module\n\
+including, but not limited to the following locations:\n\
+\n\
+       - The top-level (root) directory\n\
+       - Plug-in and Fragment directories\n\
+       - Inside Plug-ins and Fragments packaged as JARs\n\
+       - Sub-directories of the directory named "src" of certain Plug-ins\n\
+       - Feature directories\n\
+\n\
+Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
+Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
+Update License") during the installation process. If the Feature contains\n\
+Included Features, the Feature Update License should either provide you\n\
+with the terms and conditions governing the Included Features or inform\n\
+you where you can locate them. Feature Update Licenses may be found in\n\
+the "license" property of files named "feature.properties" found within a Feature.\n\
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
+terms and conditions (or references to such terms and conditions) that\n\
+govern your use of the associated Content in that directory.\n\
+\n\
+THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
+TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
+SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
+\n\
+       - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
+       - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
+       - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
+       - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
+       - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
+\n\
+IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
+TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
+is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
+govern that particular Content.\n\
+\n\
+\n\Use of Provisioning Technology\n\
+\n\
+The Eclipse Foundation makes available provisioning software, examples of which include,\n\
+but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
+the purpose of allowing users to install software, documentation, information and/or\n\
+other materials (collectively "Installable Software"). This capability is provided with\n\
+the intent of allowing such users to install, extend and update Eclipse-based products.\n\
+Information about packaging Installable Software is available at\n\
+http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
+\n\
+You may use Provisioning Technology to allow other parties to install Installable Software.\n\
+You shall be responsible for enabling the applicable license agreements relating to the\n\
+Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
+in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
+making it available in accordance with the Specification, you further acknowledge your\n\
+agreement to, and the acquisition of all necessary rights to permit the following:\n\
+\n\
+       1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
+          the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
+          extending or updating the functionality of an Eclipse-based product.\n\
+       2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
+          Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
+       3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
+          govern the use of the Installable Software ("Installable Software Agreement") and such\n\
+          Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
+          with the Specification. Such Installable Software Agreement must inform the user of the\n\
+          terms and conditions that govern the Installable Software and must solicit acceptance by\n\
+          the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
+          indication of agreement by the user, the provisioning Technology will complete installation\n\
+          of the Installable Software.\n\
+\n\
+Cryptography\n\
+\n\
+Content may contain encryption software. The country in which you are\n\
+currently may have restrictions on the import, possession, and use,\n\
+and/or re-export to another country, of encryption software. BEFORE\n\
+using any encryption software, please check the country's laws,\n\
+regulations and policies concerning the import, possession, or use, and\n\
+re-export of encryption software, to see if this is permitted.\n\
+\n\
+Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
+########### end of license property ##########################################
diff --git a/assembly/features/org.eclipse.jsf.assembly.feature/feature.xml b/assembly/features/org.eclipse.jsf.assembly.feature/feature.xml
new file mode 100644
index 0000000..36e87b1
--- /dev/null
+++ b/assembly/features/org.eclipse.jsf.assembly.feature/feature.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+      id="org.eclipse.jsf.assembly.feature"
+      label="%name"
+      version="3.2.2.qualifier"
+      provider-name="%provider"
+      plugin="org.eclipse.jsf.branding">
+
+   <description>
+      %description
+   </description>
+
+   <copyright>
+      %copyright
+   </copyright>
+
+   <license url="license.html">
+      %license
+   </license>
+
+   <includes
+         id="org.eclipse.jst.jsf.apache.trinidad.tagsupport.feature"
+         version="0.0.0"/>
+
+   <includes
+         id="org.eclipse.jst.webpageeditor.feature"
+         version="0.0.0"/>
+
+   <includes
+         id="org.eclipse.jsf.feature"
+         version="0.0.0"/>
+
+</feature>
diff --git a/assembly/features/org.eclipse.jsf.assembly.feature/license.html b/assembly/features/org.eclipse.jsf.assembly.feature/license.html
new file mode 100644
index 0000000..14f2e99
--- /dev/null
+++ b/assembly/features/org.eclipse.jsf.assembly.feature/license.html
@@ -0,0 +1,99 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
+<!-- saved from url=(0044)http://www.eclipse.org/legal/epl/notice.html -->
+<HTML><HEAD><TITLE>Eclipse.org Software User Agreement</TITLE>
+<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
+<META content="MSHTML 6.00.2800.1479" name=GENERATOR></HEAD>
+<BODY lang=EN-US vLink=purple link=blue>
+<H2>Eclipse Foundation Software User Agreement</H2>
+<P>June 06, 2007</P>
+<H3>Usage Of Content</H3>
+<P>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION 
+AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT"). USE OF 
+THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE 
+TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED 
+BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED 
+BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE 
+AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE 
+TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS OF ANY 
+APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU 
+MAY NOT USE THE CONTENT.</P>
+<H3>Applicable Licenses</H3>
+<P>Unless otherwise indicated, all Content made available by the Eclipse 
+Foundation is provided to you under the terms and conditions of the Eclipse 
+Public License Version 1.0 ("EPL"). A copy of the EPL is provided with this 
+Content and is also available at <A 
+href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</A>. 
+For purposes of the EPL, "Program" will mean the Content.</P>
+<P>Content includes, but is not limited to, source code, object code, 
+documentation and other files maintained in the Eclipse.org CVS repository 
+("Repository") in CVS modules ("Modules") and made available as downloadable 
+archives ("Downloads").</P>
+<P>Content may be apportioned into plug-ins ("Plug-ins"), plug-in fragments 
+("Fragments"), and features ("Features"). A Feature is a bundle of one or more 
+Plug-ins and/or Fragments and associated material. Files named "feature.xml" may 
+contain a list of the names and version numbers of the Plug-ins and/or Fragments 
+associated with a Feature. Plug-ins and Fragments are located in directories 
+named "plugins" and Features are located in directories named "features".</P>
+<P>Features may also include other Features ("Included Features"). Files named 
+"feature.xml" may contain a list of the names and version numbers of Included 
+Features.</P>
+<P>The terms and conditions governing Plug-ins and Fragments should be contained 
+in files named "about.html" ("Abouts"). The terms and conditions governing 
+Features and Included Features should be contained in files named "license.html" 
+("Feature Licenses"). Abouts and Feature Licenses may be located in any 
+directory of a Download or Module including, but not limited to the following 
+locations:</P>
+<UL>
+  <LI>The top-level (root) directory 
+  <LI>Plug-in and Fragment directories 
+  <LI>Subdirectories of the directory named "src" of certain Plug-ins 
+  <LI>Feature directories </LI></UL>
+<P>Note: if a Feature made available by the Eclipse Foundation is installed 
+using the Eclipse Update Manager, you must agree to a license ("Feature Update 
+License") during the installation process. If the Feature contains Included 
+Features, the Feature Update License should either provide you with the terms 
+and conditions governing the Included Features or inform you where you can 
+locate them. Feature Update Licenses may be found in the "license" property of 
+files named "feature.properties". Such Abouts, Feature Licenses and Feature 
+Update Licenses contain the terms and conditions (or references to such terms 
+and conditions) that govern your use of the associated Content in that 
+directory.</P>
+<P>THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL 
+OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE 
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</P>
+<UL>
+  <LI>Common Public License Version 1.0 (available at <A 
+  href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</A>) 
+
+  <LI>Apache Software License 1.1 (available at <A 
+  href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</A>) 
+
+  <LI>Apache Software License 2.0 (available at <A 
+  href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</A>) 
+
+  <LI>IBM Public License 1.0 (available at <A 
+  href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</A>) 
+
+  <LI>Metro Link Public License 1.00 (available at <A 
+  href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</A>) 
+
+  <LI>Mozilla Public License Version 1.1 (available at <A 
+  href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</A>) 
+  </LI>
+    
+  <LI>Common Development and Distribution License (CDDL) Version 1.0 (available at <A 
+  href="http://www.sun.com/cddl/cddl.html">http://www.sun.com/cddl/cddl.html)</A>
+  </LI>
+</UL>
+<P>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR 
+TO USE OF THE CONTENT. If no About, Feature License or Feature Update License is 
+provided, please contact the Eclipse Foundation to determine what terms and 
+conditions govern that particular Content.</P>
+<H3>Cryptography</H3>
+<P>Content may contain encryption software. The country in which you are 
+currently may have restrictions on the import, possession, and use, and/or 
+re-export to another country, of encryption software. BEFORE using any 
+encryption software, please check the country's laws, regulations and policies 
+concerning the import, possession, or use, and re-export of encryption software, 
+to see if this is permitted.</P></BODY></HTML>
+
diff --git a/assembly/features/org.eclipse.jsf_sdk.assembly.feature/.cvsignore b/assembly/features/org.eclipse.jsf_sdk.assembly.feature/.cvsignore
new file mode 100644
index 0000000..bc2abf7
--- /dev/null
+++ b/assembly/features/org.eclipse.jsf_sdk.assembly.feature/.cvsignore
@@ -0,0 +1,4 @@
+*.bin.dist.zip
+build.xml
+features
+plugins
diff --git a/assembly/features/org.eclipse.jsf_sdk.assembly.feature/.project b/assembly/features/org.eclipse.jsf_sdk.assembly.feature/.project
new file mode 100644
index 0000000..8a30754
--- /dev/null
+++ b/assembly/features/org.eclipse.jsf_sdk.assembly.feature/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.jsf_sdk.assembly.feature</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.pde.FeatureBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.FeatureNature</nature>
+	</natures>
+</projectDescription>
diff --git a/assembly/features/org.eclipse.jsf_sdk.assembly.feature/build.properties b/assembly/features/org.eclipse.jsf_sdk.assembly.feature/build.properties
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/assembly/features/org.eclipse.jsf_sdk.assembly.feature/build.properties
diff --git a/assembly/features/org.eclipse.jsf_sdk.assembly.feature/eclipse_update_120.jpg b/assembly/features/org.eclipse.jsf_sdk.assembly.feature/eclipse_update_120.jpg
new file mode 100644
index 0000000..bfdf708
--- /dev/null
+++ b/assembly/features/org.eclipse.jsf_sdk.assembly.feature/eclipse_update_120.jpg
Binary files differ
diff --git a/assembly/features/org.eclipse.jsf_sdk.assembly.feature/epl-v10.html b/assembly/features/org.eclipse.jsf_sdk.assembly.feature/epl-v10.html
new file mode 100644
index 0000000..ed4b196
--- /dev/null
+++ b/assembly/features/org.eclipse.jsf_sdk.assembly.feature/epl-v10.html
@@ -0,0 +1,328 @@
+<html xmlns:o="urn:schemas-microsoft-com:office:office"
+xmlns:w="urn:schemas-microsoft-com:office:word"
+xmlns="http://www.w3.org/TR/REC-html40">
+
+<head>
+<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
+<meta name=ProgId content=Word.Document>
+<meta name=Generator content="Microsoft Word 9">
+<meta name=Originator content="Microsoft Word 9">
+<link rel=File-List
+href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
+<title>Eclipse Public License - Version 1.0</title>
+<!--[if gte mso 9]><xml>
+ <o:DocumentProperties>
+  <o:Revision>2</o:Revision>
+  <o:TotalTime>3</o:TotalTime>
+  <o:Created>2004-03-05T23:03:00Z</o:Created>
+  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
+  <o:Pages>4</o:Pages>
+  <o:Words>1626</o:Words>
+  <o:Characters>9270</o:Characters>
+   <o:Lines>77</o:Lines>
+  <o:Paragraphs>18</o:Paragraphs>
+  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
+  <o:Version>9.4402</o:Version>
+ </o:DocumentProperties>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <w:WordDocument>
+  <w:TrackRevisions/>
+ </w:WordDocument>
+</xml><![endif]-->
+<style>
+<!--
+ /* Font Definitions */
+@font-face
+	{font-family:Tahoma;
+	panose-1:2 11 6 4 3 5 4 4 2 4;
+	mso-font-charset:0;
+	mso-generic-font-family:swiss;
+	mso-font-pitch:variable;
+	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
+ /* Style Definitions */
+p.MsoNormal, li.MsoNormal, div.MsoNormal
+	{mso-style-parent:"";
+	margin:0in;
+	margin-bottom:.0001pt;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	font-family:"Times New Roman";
+	mso-fareast-font-family:"Times New Roman";}
+p
+	{margin-right:0in;
+	mso-margin-top-alt:auto;
+	mso-margin-bottom-alt:auto;
+	margin-left:0in;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	font-family:"Times New Roman";
+	mso-fareast-font-family:"Times New Roman";}
+p.BalloonText, li.BalloonText, div.BalloonText
+	{mso-style-name:"Balloon Text";
+	margin:0in;
+	margin-bottom:.0001pt;
+	mso-pagination:widow-orphan;
+	font-size:8.0pt;
+	font-family:Tahoma;
+	mso-fareast-font-family:"Times New Roman";}
+@page Section1
+	{size:8.5in 11.0in;
+	margin:1.0in 1.25in 1.0in 1.25in;
+	mso-header-margin:.5in;
+	mso-footer-margin:.5in;
+	mso-paper-source:0;}
+div.Section1
+	{page:Section1;}
+-->
+</style>
+</head>
+
+<body lang=EN-US style='tab-interval:.5in'>
+
+<div class=Section1>
+
+<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
+</p>
+
+<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
+THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
+REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
+OF THIS AGREEMENT.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+in the case of the initial Contributor, the initial code and documentation
+distributed under this Agreement, and<br clear=left>
+b) in the case of each subsequent Contributor:</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
+changes to the Program, and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
+additions to the Program;</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
+such changes and/or additions to the Program originate from and are distributed
+by that particular Contributor. A Contribution 'originates' from a Contributor
+if it was added to the Program by such Contributor itself or anyone acting on
+such Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in conjunction
+with the Program under their own license agreement, and (ii) are not derivative
+works of the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
+entity that distributes the Program.</span> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
+claims licensable by a Contributor which are necessarily infringed by the use
+or sale of its Contribution alone or when combined with the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
+distributed in accordance with this Agreement.</span> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
+receives the Program under this Agreement, including all Contributors.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+Subject to the terms of this Agreement, each Contributor hereby grants Recipient
+a non-exclusive, worldwide, royalty-free copyright license to<span
+style='color:red'> </span>reproduce, prepare derivative works of, publicly
+display, publicly perform, distribute and sublicense the Contribution of such
+Contributor, if any, and such derivative works, in source code and object code
+form.</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
+Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
+patent license under Licensed Patents to make, use, sell, offer to sell, import
+and otherwise transfer the Contribution of such Contributor, if any, in source
+code and object code form. This patent license shall apply to the combination
+of the Contribution and the Program if, at the time the Contribution is added
+by the Contributor, such addition of the Contribution causes such combination
+to be covered by the Licensed Patents. The patent license shall not apply to
+any other combinations which include the Contribution. No hardware per se is
+licensed hereunder. </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
+Recipient understands that although each Contributor grants the licenses to its
+Contributions set forth herein, no assurances are provided by any Contributor
+that the Program does not infringe the patent or other intellectual property
+rights of any other entity. Each Contributor disclaims any liability to Recipient
+for claims brought by any other entity based on infringement of intellectual
+property rights or otherwise. As a condition to exercising the rights and
+licenses granted hereunder, each Recipient hereby assumes sole responsibility
+to secure any other intellectual property rights needed, if any. For example,
+if a third party patent license is required to allow Recipient to distribute
+the Program, it is Recipient's responsibility to acquire that license before
+distributing the Program.</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
+Each Contributor represents that to its knowledge it has sufficient copyright
+rights in its Contribution, if any, to grant the copyright license set forth in
+this Agreement. </span></p>
+
+<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
+
+<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
+Program in object code form under its own license agreement, provided that:</span>
+</p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+it complies with the terms and conditions of this Agreement; and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
+its license agreement:</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
+effectively disclaims on behalf of all Contributors all warranties and
+conditions, express and implied, including warranties or conditions of title
+and non-infringement, and implied warranties or conditions of merchantability
+and fitness for a particular purpose; </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
+effectively excludes on behalf of all Contributors all liability for damages,
+including direct, indirect, special, incidental and consequential damages, such
+as lost profits; </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
+states that any provisions which differ from this Agreement are offered by that
+Contributor alone and not by any other party; and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
+states that source code for the Program is available from such Contributor, and
+informs licensees how to obtain it in a reasonable manner on or through a
+medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
+
+<p><span style='font-size:10.0pt'>When the Program is made available in source
+code form:</span> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+it must be made available under this Agreement; and </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
+copy of this Agreement must be included with each copy of the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
+copyright notices contained within the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
+originator of its Contribution, if any, in a manner that reasonably allows
+subsequent Recipients to identify the originator of the Contribution. </span></p>
+
+<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
+
+<p><span style='font-size:10.0pt'>Commercial distributors of software may
+accept certain responsibilities with respect to end users, business partners
+and the like. While this license is intended to facilitate the commercial use
+of the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create potential
+liability for other Contributors. Therefore, if a Contributor includes the
+Program in a commercial product offering, such Contributor (&quot;Commercial
+Contributor&quot;) hereby agrees to defend and indemnify every other
+Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
+costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
+legal actions brought by a third party against the Indemnified Contributor to
+the extent caused by the acts or omissions of such Commercial Contributor in
+connection with its distribution of the Program in a commercial product
+offering. The obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In order
+to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor
+to control, and cooperate with the Commercial Contributor in, the defense and
+any related settlement negotiations. The Indemnified Contributor may participate
+in any such claim at its own expense.</span> </p>
+
+<p><span style='font-size:10.0pt'>For example, a Contributor might include the
+Program in a commercial product offering, Product X. That Contributor is then a
+Commercial Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance claims and
+warranties are such Commercial Contributor's responsibility alone. Under this
+section, the Commercial Contributor would have to defend claims against the
+other Contributors related to those performance claims and warranties, and if a
+court requires any other Contributor to pay any damages as a result, the
+Commercial Contributor must pay those damages.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
+
+<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
+WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
+MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and distributing the
+Program and assumes all risks associated with its exercise of rights under this
+Agreement , including but not limited to the risks and costs of program errors,
+compliance with applicable laws, damage to or loss of data, programs or
+equipment, and unavailability or interruption of operations. </span></p>
+
+<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
+
+<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
+THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
+
+<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
+or unenforceable under applicable law, it shall not affect the validity or
+enforceability of the remainder of the terms of this Agreement, and without
+further action by the parties hereto, such provision shall be reformed to the
+minimum extent necessary to make such provision valid and enforceable.</span> </p>
+
+<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
+against any entity (including a cross-claim or counterclaim in a lawsuit)
+alleging that the Program itself (excluding combinations of the Program with
+other software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the date
+such litigation is filed. </span></p>
+
+<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
+shall terminate if it fails to comply with any of the material terms or
+conditions of this Agreement and does not cure such failure in a reasonable
+period of time after becoming aware of such noncompliance. If all Recipient's
+rights under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive. </span></p>
+
+<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
+copies of this Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The Agreement
+Steward reserves the right to publish new versions (including revisions) of
+this Agreement from time to time. No one other than the Agreement Steward has
+the right to modify this Agreement. The Eclipse Foundation is the initial
+Agreement Steward. The Eclipse Foundation may assign the responsibility to
+serve as the Agreement Steward to a suitable separate entity. Each new version
+of the Agreement will be given a distinguishing version number. The Program
+(including Contributions) may always be distributed subject to the version of
+the Agreement under which it was received. In addition, after a new version of
+the Agreement is published, Contributor may elect to distribute the Program
+(including its Contributions) under the new version. Except as expressly stated
+in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
+the intellectual property of any Contributor under this Agreement, whether
+expressly, by implication, estoppel or otherwise. All rights in the Program not
+expressly granted under this Agreement are reserved.</span> </p>
+
+<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
+State of New York and the intellectual property laws of the United States of
+America. No party to this Agreement will bring a legal action under this
+Agreement more than one year after the cause of action arose. Each party waives
+its rights to a jury trial in any resulting litigation.</span> </p>
+
+<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+</div>
+
+</body>
+
+</html>
\ No newline at end of file
diff --git a/assembly/features/org.eclipse.jsf_sdk.assembly.feature/feature.properties b/assembly/features/org.eclipse.jsf_sdk.assembly.feature/feature.properties
new file mode 100644
index 0000000..70bca85
--- /dev/null
+++ b/assembly/features/org.eclipse.jsf_sdk.assembly.feature/feature.properties
@@ -0,0 +1,158 @@
+###############################################################################
+# Copyright (c) 2006 Oracle.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+# 
+# Contributors:
+#     Oracle. - initial API and implementation
+###############################################################################
+name=JavaServer Faces Tools (JSF) Project SDK
+provider=Eclipse Web Tools Platform
+description=WTP JavaServer Faces Tools (JSF) Project  SDK
+
+
+
+# "copyright" property - text of the "Feature Update Copyright"
+copyright=\
+Copyright (c) 2006 Oracle Corporation.\n\
+All rights reserved. This program and the accompanying materials\n\
+are made available under the terms of the Eclipse Public License v1.0\n\
+which accompanies this distribution, and is available at\n\
+http://www.eclipse.org/legal/epl-v10.html\n\
+\n\
+Contributors:\n\
+    Oracle - initial API and implementation\n
+################ end of copyright property ####################################
+
+# "licenseURL" property - URL of the "Feature License"
+# do not translate value - just change to point to a locale-specific HTML page
+licenseURL=license.html
+
+# "license" property - text of the "Feature Update License"
+# should be plain text version of license agreement pointed to be "licenseURL"
+license=\
+Eclipse Foundation Software User Agreement\n\
+April 14, 2010\n\
+\n\
+Usage Of Content\n\
+\n\
+THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
+OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
+USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
+AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
+NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU\n\
+AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
+AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
+OR NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE\n\
+TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
+OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
+BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
+\n\
+Applicable Licenses\n\
+\n\
+Unless otherwise indicated, all Content made available by the\n\
+Eclipse Foundation is provided to you under the terms and conditions of\n\
+the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
+provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
+For purposes of the EPL, "Program" will mean the Content.\n\
+\n\
+Content includes, but is not limited to, source code, object code,\n\
+documentation and other files maintained in the Eclipse Foundation source code\n\
+repository ("Repository") in software modules ("Modules") and made available\n\
+as downloadable archives ("Downloads").\n\
+\n\
+       - Content may be structured and packaged into modules to facilitate delivering,\n\
+         extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
+         plug-in fragments ("Fragments"), and features ("Features").\n\
+       - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
+         in a directory named "plugins".\n\
+       - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
+         Each Feature may be packaged as a sub-directory in a directory named "features".\n\
+         Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
+         numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
+       - Features may also include other Features ("Included Features"). Within a Feature, files\n\
+         named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
+\n\
+The terms and conditions governing Plug-ins and Fragments should be\n\
+contained in files named "about.html" ("Abouts"). The terms and\n\
+conditions governing Features and Included Features should be contained\n\
+in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
+Licenses may be located in any directory of a Download or Module\n\
+including, but not limited to the following locations:\n\
+\n\
+       - The top-level (root) directory\n\
+       - Plug-in and Fragment directories\n\
+       - Inside Plug-ins and Fragments packaged as JARs\n\
+       - Sub-directories of the directory named "src" of certain Plug-ins\n\
+       - Feature directories\n\
+\n\
+Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
+Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
+Update License") during the installation process. If the Feature contains\n\
+Included Features, the Feature Update License should either provide you\n\
+with the terms and conditions governing the Included Features or inform\n\
+you where you can locate them. Feature Update Licenses may be found in\n\
+the "license" property of files named "feature.properties" found within a Feature.\n\
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
+terms and conditions (or references to such terms and conditions) that\n\
+govern your use of the associated Content in that directory.\n\
+\n\
+THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
+TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
+SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
+\n\
+       - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
+       - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
+       - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
+       - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
+       - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
+\n\
+IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
+TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
+is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
+govern that particular Content.\n\
+\n\
+\n\Use of Provisioning Technology\n\
+\n\
+The Eclipse Foundation makes available provisioning software, examples of which include,\n\
+but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
+the purpose of allowing users to install software, documentation, information and/or\n\
+other materials (collectively "Installable Software"). This capability is provided with\n\
+the intent of allowing such users to install, extend and update Eclipse-based products.\n\
+Information about packaging Installable Software is available at\n\
+http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
+\n\
+You may use Provisioning Technology to allow other parties to install Installable Software.\n\
+You shall be responsible for enabling the applicable license agreements relating to the\n\
+Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
+in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
+making it available in accordance with the Specification, you further acknowledge your\n\
+agreement to, and the acquisition of all necessary rights to permit the following:\n\
+\n\
+       1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
+          the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
+          extending or updating the functionality of an Eclipse-based product.\n\
+       2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
+          Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
+       3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
+          govern the use of the Installable Software ("Installable Software Agreement") and such\n\
+          Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
+          with the Specification. Such Installable Software Agreement must inform the user of the\n\
+          terms and conditions that govern the Installable Software and must solicit acceptance by\n\
+          the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
+          indication of agreement by the user, the provisioning Technology will complete installation\n\
+          of the Installable Software.\n\
+\n\
+Cryptography\n\
+\n\
+Content may contain encryption software. The country in which you are\n\
+currently may have restrictions on the import, possession, and use,\n\
+and/or re-export to another country, of encryption software. BEFORE\n\
+using any encryption software, please check the country's laws,\n\
+regulations and policies concerning the import, possession, or use, and\n\
+re-export of encryption software, to see if this is permitted.\n\
+\n\
+Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
+########### end of license property ##########################################
diff --git a/assembly/features/org.eclipse.jsf_sdk.assembly.feature/feature.xml b/assembly/features/org.eclipse.jsf_sdk.assembly.feature/feature.xml
new file mode 100644
index 0000000..2c3c408
--- /dev/null
+++ b/assembly/features/org.eclipse.jsf_sdk.assembly.feature/feature.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+      id="org.eclipse.jsf_sdk.assembly.feature"
+      label="%featureName"
+      version="3.2.2.qualifier"
+      provider-name="%providerName"
+      image="eclipse_update_120.jpg">
+
+   <description>
+      %description
+   </description>
+
+   <copyright>
+      %copyright
+   </copyright>
+
+   <license url="license.html">
+      %license
+   </license>
+
+   <includes
+         id="org.eclipse.jst.jsf.apache.trinidad.tagsupport_sdk.feature"
+         version="0.0.0"/>
+
+   <includes
+         id="org.eclipse.jst.webpageeditor_sdk.feature"
+         version="0.0.0"/>
+
+   <includes
+         id="org.eclipse.jsf_sdk.feature"
+         version="0.0.0"/>
+
+</feature>
diff --git a/assembly/features/org.eclipse.jsf_sdk.assembly.feature/license.html b/assembly/features/org.eclipse.jsf_sdk.assembly.feature/license.html
new file mode 100644
index 0000000..c184ca3
--- /dev/null
+++ b/assembly/features/org.eclipse.jsf_sdk.assembly.feature/license.html
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>April 14, 2010</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
+   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
+   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
+
+<ul>
+       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
+       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+       <li>The top-level (root) directory</li>
+       <li>Plug-in and Fragment directories</li>
+       <li>Inside Plug-ins and Fragments packaged as JARs</li>
+       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
+       <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
+installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
+       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
+   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
+   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
+   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
+       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+   (&quot;Specification&quot;).</p>
+
+<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
+   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
+   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
+   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
+       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
+       product.</li>
+       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
+       accessed and copied to the Target Machine.</li>
+       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
+       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
+       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
+       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
+       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
+   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
+   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+</body>
+</html>
diff --git a/assembly/plugins/org.eclipse.jsf.branding/.classpath b/assembly/plugins/org.eclipse.jsf.branding/.classpath
deleted file mode 100644
index 7cec603..0000000
--- a/assembly/plugins/org.eclipse.jsf.branding/.classpath
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/assembly/plugins/org.eclipse.jsf.branding/.project b/assembly/plugins/org.eclipse.jsf.branding/.project
index bd50004..c1c23a4 100644
--- a/assembly/plugins/org.eclipse.jsf.branding/.project
+++ b/assembly/plugins/org.eclipse.jsf.branding/.project
@@ -6,11 +6,6 @@
 	</projects>
 	<buildSpec>
 		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
 			<name>org.eclipse.pde.ManifestBuilder</name>
 			<arguments>
 			</arguments>
@@ -23,6 +18,5 @@
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
 	</natures>
 </projectDescription>
diff --git a/assembly/plugins/org.eclipse.jsf.branding/META-INF/MANIFEST.MF b/assembly/plugins/org.eclipse.jsf.branding/META-INF/MANIFEST.MF
index 8524822..b295675 100644
--- a/assembly/plugins/org.eclipse.jsf.branding/META-INF/MANIFEST.MF
+++ b/assembly/plugins/org.eclipse.jsf.branding/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: %plugin.Name
-Bundle-SymbolicName: org.eclipse.jsf
-Bundle-Version: 1.0.1.qualifier
+Bundle-SymbolicName: org.eclipse.jsf.branding
+Bundle-Version: 3.2.0.qualifier
 Bundle-Localization: plugin
 Bundle-Vendor: %plugin.Provider
diff --git a/assembly/plugins/org.eclipse.jsf.branding/about.ini b/assembly/plugins/org.eclipse.jsf.branding/about.ini
index a21a3ec..0aac4fb 100644
--- a/assembly/plugins/org.eclipse.jsf.branding/about.ini
+++ b/assembly/plugins/org.eclipse.jsf.branding/about.ini
@@ -1,3 +1,14 @@
+###############################################################################
+# Copyright (c) 2006, 2009 Oracle.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+# 
+# Contributors:
+#     Oracle Corporation. - initial API and implementation
+###############################################################################
+
 # about.ini
 # contains information about a feature
 # java.io.Properties file (ISO 8859-1 with "\" escapes)
@@ -11,7 +22,7 @@
 # needed for primary features only
 
 # Property "featureImage" contains path to feature image (32x32)
-featureImage=eclipse32.gif
+featureImage=icons/WTP_icon_x32_v2.png
 
 # Property "aboutImage" contains path to product image (500x330 or 115x164)
 # needed for primary features only
diff --git a/assembly/plugins/org.eclipse.jsf.branding/about.properties b/assembly/plugins/org.eclipse.jsf.branding/about.properties
index c62b076..9e7f778 100644
--- a/assembly/plugins/org.eclipse.jsf.branding/about.properties
+++ b/assembly/plugins/org.eclipse.jsf.branding/about.properties
@@ -20,5 +20,5 @@
 Version: {featureVersion}\n\
 Build id: {0}\n\
 \n\
-(c) Copyright Eclipse contributors and others 2005.  All rights reserved.\n\
+(c) Copyright Oracle contributors and others 2006, 2009.  All rights reserved.\n\
 Visit http://www.eclipse.org/webtools
diff --git a/assembly/plugins/org.eclipse.jsf.branding/build.properties b/assembly/plugins/org.eclipse.jsf.branding/build.properties
index ab20e78..094e1ae 100644
--- a/assembly/plugins/org.eclipse.jsf.branding/build.properties
+++ b/assembly/plugins/org.eclipse.jsf.branding/build.properties
@@ -16,5 +16,5 @@
                about.ini,\
                about.html,\
                plugin.properties,\
-               component.xml
+               icons/WTP_icon_x32_v2.png
 
diff --git a/assembly/plugins/org.eclipse.jsf.branding/component.xml b/assembly/plugins/org.eclipse.jsf.branding/component.xml
deleted file mode 100644
index d470a56..0000000
--- a/assembly/plugins/org.eclipse.jsf.branding/component.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<component  xmlns="http://eclipse.org/wtp/releng/tools/component-model" name="org.eclipse.jsf">
-<description url=""></description>
-<component-depends unrestricted="true"></component-depends>
-<plugin id="org.eclipse.jst.jsf.common" fragment="false"/>
-<plugin id="org.eclipse.jst.jsf.common.ui" fragment="false"/>
-<plugin id="org.eclipse.jst.jsf.core" fragment="false"/>
-<plugin id="org.eclipse.jst.jsf.ui" fragment="false"/>
-<plugin id="org.eclipse.jst.jsf.standard.tagsupport" fragment="false"/>
-<plugin id="org.eclipse.jst.jsf.facesconfig" fragment="false"/>
-<plugin id="org.eclipse.jst.jsf.facesconfig.ui" fragment="false"/>
-<plugin id="org.eclipse.jst.pagedesigner" fragment="false"/>
-<plugin id="org.eclipse.jst.pagedesigner.jsf.ui" fragment="false"/>
-<plugin id="org.eclipse.jst.pagedesigner.jsp.core" fragment="false"/>
-<plugin id="org.eclipse.jst.jsf.doc.dev" fragment="false"/>
-</component>
-
-
-
-
-
-
-
diff --git a/assembly/plugins/org.eclipse.jsf.branding/icons/WTP_icon_x32_v2.png b/assembly/plugins/org.eclipse.jsf.branding/icons/WTP_icon_x32_v2.png
new file mode 100644
index 0000000..6f09c2a
--- /dev/null
+++ b/assembly/plugins/org.eclipse.jsf.branding/icons/WTP_icon_x32_v2.png
Binary files differ
diff --git a/jsf/features/org.eclipse.jsf.feature/.cvsignore b/jsf/features/org.eclipse.jsf.feature/.cvsignore
new file mode 100644
index 0000000..dafb923
--- /dev/null
+++ b/jsf/features/org.eclipse.jsf.feature/.cvsignore
@@ -0,0 +1,4 @@
+build.xml
+*bin.dist.zip
+org.eclipse.jst.jsf.feature*.jar
+feature.temp.folder
diff --git a/jsf/features/org.eclipse.jsf.feature/.project b/jsf/features/org.eclipse.jsf.feature/.project
new file mode 100644
index 0000000..dff7881
--- /dev/null
+++ b/jsf/features/org.eclipse.jsf.feature/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.jsf.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/jsf/features/org.eclipse.jsf.feature/.settings/org.eclipse.core.resources.prefs b/jsf/features/org.eclipse.jsf.feature/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..9a9e24d
--- /dev/null
+++ b/jsf/features/org.eclipse.jsf.feature/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,3 @@
+#Sun May 27 16:03:41 EDT 2007
+eclipse.preferences.version=1
+encoding/<project>=ISO-8859-1
diff --git a/jsf/features/org.eclipse.jsf.feature/build.properties b/jsf/features/org.eclipse.jsf.feature/build.properties
new file mode 100644
index 0000000..b19fffd
--- /dev/null
+++ b/jsf/features/org.eclipse.jsf.feature/build.properties
@@ -0,0 +1,15 @@
+###############################################################################
+# Copyright (c) 2005 Oracle Corporation.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#    Gerry Kessler - initial API and implementation
+###############################################################################
+bin.includes = feature.xml,\
+               license.html,\
+               feature.properties,\
+               epl-v10.html,\
+               eclipse_update_120.jpg
diff --git a/jsf/features/org.eclipse.jsf.feature/eclipse_update_120.jpg b/jsf/features/org.eclipse.jsf.feature/eclipse_update_120.jpg
new file mode 100644
index 0000000..bfdf708
--- /dev/null
+++ b/jsf/features/org.eclipse.jsf.feature/eclipse_update_120.jpg
Binary files differ
diff --git a/jsf/features/org.eclipse.jsf.feature/epl-v10.html b/jsf/features/org.eclipse.jsf.feature/epl-v10.html
new file mode 100644
index 0000000..022ad29
--- /dev/null
+++ b/jsf/features/org.eclipse.jsf.feature/epl-v10.html
@@ -0,0 +1,328 @@
+<html xmlns:o="urn:schemas-microsoft-com:office:office"
+xmlns:w="urn:schemas-microsoft-com:office:word"
+xmlns="http://www.w3.org/TR/REC-html40">
+
+<head>
+<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
+<meta name=ProgId content=Word.Document>
+<meta name=Generator content="Microsoft Word 9">
+<meta name=Originator content="Microsoft Word 9">
+<link rel=File-List
+href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
+<title>Eclipse Public License - Version 1.0</title>
+<!--[if gte mso 9]><xml>
+ <o:DocumentProperties>
+  <o:Revision>2</o:Revision>
+  <o:TotalTime>3</o:TotalTime>
+  <o:Created>2004-03-05T23:03:00Z</o:Created>
+  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
+  <o:Pages>4</o:Pages>
+  <o:Words>1626</o:Words>
+  <o:Characters>9270</o:Characters>
+   <o:Lines>77</o:Lines>
+  <o:Paragraphs>18</o:Paragraphs>
+  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
+  <o:Version>9.4402</o:Version>
+ </o:DocumentProperties>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <w:WordDocument>
+  <w:TrackRevisions/>
+ </w:WordDocument>
+</xml><![endif]-->
+<style>
+<!--
+ /* Font Definitions */
+@font-face
+	{font-family:Tahoma;
+	panose-1:2 11 6 4 3 5 4 4 2 4;
+	mso-font-charset:0;
+	mso-generic-font-family:swiss;
+	mso-font-pitch:variable;
+	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
+ /* Style Definitions */
+p.MsoNormal, li.MsoNormal, div.MsoNormal
+	{mso-style-parent:"";
+	margin:0in;
+	margin-bottom:.0001pt;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	font-family:"Times New Roman";
+	mso-fareast-font-family:"Times New Roman";}
+p
+	{margin-right:0in;
+	mso-margin-top-alt:auto;
+	mso-margin-bottom-alt:auto;
+	margin-left:0in;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	font-family:"Times New Roman";
+	mso-fareast-font-family:"Times New Roman";}
+p.BalloonText, li.BalloonText, div.BalloonText
+	{mso-style-name:"Balloon Text";
+	margin:0in;
+	margin-bottom:.0001pt;
+	mso-pagination:widow-orphan;
+	font-size:8.0pt;
+	font-family:Tahoma;
+	mso-fareast-font-family:"Times New Roman";}
+@page Section1
+	{size:8.5in 11.0in;
+	margin:1.0in 1.25in 1.0in 1.25in;
+	mso-header-margin:.5in;
+	mso-footer-margin:.5in;
+	mso-paper-source:0;}
+div.Section1
+	{page:Section1;}
+-->
+</style>
+</head>
+
+<body lang=EN-US style='tab-interval:.5in'>
+
+<div class=Section1>
+
+<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
+</p>
+
+<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
+THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
+REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
+OF THIS AGREEMENT.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+in the case of the initial Contributor, the initial code and documentation
+distributed under this Agreement, and<br clear=left>
+b) in the case of each subsequent Contributor:</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
+changes to the Program, and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
+additions to the Program;</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
+such changes and/or additions to the Program originate from and are distributed
+by that particular Contributor. A Contribution 'originates' from a Contributor
+if it was added to the Program by such Contributor itself or anyone acting on
+such Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in conjunction
+with the Program under their own license agreement, and (ii) are not derivative
+works of the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
+entity that distributes the Program.</span> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
+claims licensable by a Contributor which are necessarily infringed by the use
+or sale of its Contribution alone or when combined with the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
+distributed in accordance with this Agreement.</span> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
+receives the Program under this Agreement, including all Contributors.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+Subject to the terms of this Agreement, each Contributor hereby grants Recipient
+a non-exclusive, worldwide, royalty-free copyright license to<span
+style='color:red'> </span>reproduce, prepare derivative works of, publicly
+display, publicly perform, distribute and sublicense the Contribution of such
+Contributor, if any, and such derivative works, in source code and object code
+form.</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
+Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
+patent license under Licensed Patents to make, use, sell, offer to sell, import
+and otherwise transfer the Contribution of such Contributor, if any, in source
+code and object code form. This patent license shall apply to the combination
+of the Contribution and the Program if, at the time the Contribution is added
+by the Contributor, such addition of the Contribution causes such combination
+to be covered by the Licensed Patents. The patent license shall not apply to
+any other combinations which include the Contribution. No hardware per se is
+licensed hereunder. </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
+Recipient understands that although each Contributor grants the licenses to its
+Contributions set forth herein, no assurances are provided by any Contributor
+that the Program does not infringe the patent or other intellectual property
+rights of any other entity. Each Contributor disclaims any liability to Recipient
+for claims brought by any other entity based on infringement of intellectual
+property rights or otherwise. As a condition to exercising the rights and
+licenses granted hereunder, each Recipient hereby assumes sole responsibility
+to secure any other intellectual property rights needed, if any. For example,
+if a third party patent license is required to allow Recipient to distribute
+the Program, it is Recipient's responsibility to acquire that license before
+distributing the Program.</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
+Each Contributor represents that to its knowledge it has sufficient copyright
+rights in its Contribution, if any, to grant the copyright license set forth in
+this Agreement. </span></p>
+
+<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
+
+<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
+Program in object code form under its own license agreement, provided that:</span>
+</p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+it complies with the terms and conditions of this Agreement; and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
+its license agreement:</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
+effectively disclaims on behalf of all Contributors all warranties and
+conditions, express and implied, including warranties or conditions of title
+and non-infringement, and implied warranties or conditions of merchantability
+and fitness for a particular purpose; </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
+effectively excludes on behalf of all Contributors all liability for damages,
+including direct, indirect, special, incidental and consequential damages, such
+as lost profits; </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
+states that any provisions which differ from this Agreement are offered by that
+Contributor alone and not by any other party; and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
+states that source code for the Program is available from such Contributor, and
+informs licensees how to obtain it in a reasonable manner on or through a
+medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
+
+<p><span style='font-size:10.0pt'>When the Program is made available in source
+code form:</span> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+it must be made available under this Agreement; and </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
+copy of this Agreement must be included with each copy of the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
+copyright notices contained within the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
+originator of its Contribution, if any, in a manner that reasonably allows
+subsequent Recipients to identify the originator of the Contribution. </span></p>
+
+<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
+
+<p><span style='font-size:10.0pt'>Commercial distributors of software may
+accept certain responsibilities with respect to end users, business partners
+and the like. While this license is intended to facilitate the commercial use
+of the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create potential
+liability for other Contributors. Therefore, if a Contributor includes the
+Program in a commercial product offering, such Contributor (&quot;Commercial
+Contributor&quot;) hereby agrees to defend and indemnify every other
+Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
+costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
+legal actions brought by a third party against the Indemnified Contributor to
+the extent caused by the acts or omissions of such Commercial Contributor in
+connection with its distribution of the Program in a commercial product
+offering. The obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In order
+to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor
+to control, and cooperate with the Commercial Contributor in, the defense and
+any related settlement negotiations. The Indemnified Contributor may participate
+in any such claim at its own expense.</span> </p>
+
+<p><span style='font-size:10.0pt'>For example, a Contributor might include the
+Program in a commercial product offering, Product X. That Contributor is then a
+Commercial Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance claims and
+warranties are such Commercial Contributor's responsibility alone. Under this
+section, the Commercial Contributor would have to defend claims against the
+other Contributors related to those performance claims and warranties, and if a
+court requires any other Contributor to pay any damages as a result, the
+Commercial Contributor must pay those damages.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
+
+<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
+WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
+MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and distributing the
+Program and assumes all risks associated with its exercise of rights under this
+Agreement , including but not limited to the risks and costs of program errors,
+compliance with applicable laws, damage to or loss of data, programs or
+equipment, and unavailability or interruption of operations. </span></p>
+
+<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
+
+<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
+THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
+
+<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
+or unenforceable under applicable law, it shall not affect the validity or
+enforceability of the remainder of the terms of this Agreement, and without
+further action by the parties hereto, such provision shall be reformed to the
+minimum extent necessary to make such provision valid and enforceable.</span> </p>
+
+<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
+against any entity (including a cross-claim or counterclaim in a lawsuit)
+alleging that the Program itself (excluding combinations of the Program with
+other software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the date
+such litigation is filed. </span></p>
+
+<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
+shall terminate if it fails to comply with any of the material terms or
+conditions of this Agreement and does not cure such failure in a reasonable
+period of time after becoming aware of such noncompliance. If all Recipient's
+rights under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive. </span></p>
+
+<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
+copies of this Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The Agreement
+Steward reserves the right to publish new versions (including revisions) of
+this Agreement from time to time. No one other than the Agreement Steward has
+the right to modify this Agreement. The Eclipse Foundation is the initial
+Agreement Steward. The Eclipse Foundation may assign the responsibility to
+serve as the Agreement Steward to a suitable separate entity. Each new version
+of the Agreement will be given a distinguishing version number. The Program
+(including Contributions) may always be distributed subject to the version of
+the Agreement under which it was received. In addition, after a new version of
+the Agreement is published, Contributor may elect to distribute the Program
+(including its Contributions) under the new version. Except as expressly stated
+in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
+the intellectual property of any Contributor under this Agreement, whether
+expressly, by implication, estoppel or otherwise. All rights in the Program not
+expressly granted under this Agreement are reserved.</span> </p>
+
+<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
+State of New York and the intellectual property laws of the United States of
+America. No party to this Agreement will bring a legal action under this
+Agreement more than one year after the cause of action arose. Each party waives
+its rights to a jury trial in any resulting litigation.</span> </p>
+
+<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+</div>
+
+</body>
+
+</html>
diff --git a/jsf/features/org.eclipse.jsf.feature/feature.properties b/jsf/features/org.eclipse.jsf.feature/feature.properties
new file mode 100644
index 0000000..567597d
--- /dev/null
+++ b/jsf/features/org.eclipse.jsf.feature/feature.properties
@@ -0,0 +1,151 @@
+###############################################################################
+# Copyright (c) 2005, 2007 Oracle 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:
+#     Oracle Corporation - initial API and implementation
+###############################################################################
+name=JavaServer Faces Tools (JSF) Project
+provider=Eclipse Web Tools Platform
+description=WTP JavaServer Faces Tools (JSF) Project 
+updateSiteName=The Eclipse Web Tools Platform (WTP) Project update site
+licenseURL=license.html
+# "copyright" property - text of the "Feature Update Copyright"
+copyright=\
+Copyright (c) 2006 Oracle Corporation.\
+All rights reserved. This program and the accompanying materials\
+are made available under the terms of the Eclipse Public License v1.0\
+which accompanies this distribution, and is available at\
+http://www.eclipse.org/legal/epl-v10.html\
+\n\
+Contributors:\n\
+    Oracle Corporation - initial API and implementation\n
+################ end of copyright property ####################################
+
+license=\
+Eclipse Foundation Software User Agreement\n\
+April 14, 2010\n\
+\n\
+Usage Of Content\n\
+\n\
+THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
+OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
+USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
+AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
+NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU\n\
+AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
+AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
+OR NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE\n\
+TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
+OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
+BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
+\n\
+Applicable Licenses\n\
+\n\
+Unless otherwise indicated, all Content made available by the\n\
+Eclipse Foundation is provided to you under the terms and conditions of\n\
+the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
+provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
+For purposes of the EPL, "Program" will mean the Content.\n\
+\n\
+Content includes, but is not limited to, source code, object code,\n\
+documentation and other files maintained in the Eclipse Foundation source code\n\
+repository ("Repository") in software modules ("Modules") and made available\n\
+as downloadable archives ("Downloads").\n\
+\n\
+       - Content may be structured and packaged into modules to facilitate delivering,\n\
+         extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
+         plug-in fragments ("Fragments"), and features ("Features").\n\
+       - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
+         in a directory named "plugins".\n\
+       - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
+         Each Feature may be packaged as a sub-directory in a directory named "features".\n\
+         Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
+         numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
+       - Features may also include other Features ("Included Features"). Within a Feature, files\n\
+         named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
+\n\
+The terms and conditions governing Plug-ins and Fragments should be\n\
+contained in files named "about.html" ("Abouts"). The terms and\n\
+conditions governing Features and Included Features should be contained\n\
+in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
+Licenses may be located in any directory of a Download or Module\n\
+including, but not limited to the following locations:\n\
+\n\
+       - The top-level (root) directory\n\
+       - Plug-in and Fragment directories\n\
+       - Inside Plug-ins and Fragments packaged as JARs\n\
+       - Sub-directories of the directory named "src" of certain Plug-ins\n\
+       - Feature directories\n\
+\n\
+Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
+Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
+Update License") during the installation process. If the Feature contains\n\
+Included Features, the Feature Update License should either provide you\n\
+with the terms and conditions governing the Included Features or inform\n\
+you where you can locate them. Feature Update Licenses may be found in\n\
+the "license" property of files named "feature.properties" found within a Feature.\n\
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
+terms and conditions (or references to such terms and conditions) that\n\
+govern your use of the associated Content in that directory.\n\
+\n\
+THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
+TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
+SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
+\n\
+       - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
+       - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
+       - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
+       - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
+       - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
+\n\
+IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
+TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
+is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
+govern that particular Content.\n\
+\n\
+\n\Use of Provisioning Technology\n\
+\n\
+The Eclipse Foundation makes available provisioning software, examples of which include,\n\
+but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
+the purpose of allowing users to install software, documentation, information and/or\n\
+other materials (collectively "Installable Software"). This capability is provided with\n\
+the intent of allowing such users to install, extend and update Eclipse-based products.\n\
+Information about packaging Installable Software is available at\n\
+http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
+\n\
+You may use Provisioning Technology to allow other parties to install Installable Software.\n\
+You shall be responsible for enabling the applicable license agreements relating to the\n\
+Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
+in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
+making it available in accordance with the Specification, you further acknowledge your\n\
+agreement to, and the acquisition of all necessary rights to permit the following:\n\
+\n\
+       1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
+          the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
+          extending or updating the functionality of an Eclipse-based product.\n\
+       2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
+          Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
+       3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
+          govern the use of the Installable Software ("Installable Software Agreement") and such\n\
+          Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
+          with the Specification. Such Installable Software Agreement must inform the user of the\n\
+          terms and conditions that govern the Installable Software and must solicit acceptance by\n\
+          the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
+          indication of agreement by the user, the provisioning Technology will complete installation\n\
+          of the Installable Software.\n\
+\n\
+Cryptography\n\
+\n\
+Content may contain encryption software. The country in which you are\n\
+currently may have restrictions on the import, possession, and use,\n\
+and/or re-export to another country, of encryption software. BEFORE\n\
+using any encryption software, please check the country's laws,\n\
+regulations and policies concerning the import, possession, or use, and\n\
+re-export of encryption software, to see if this is permitted.\n\
+\n\
+Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
+########### end of license property ##########################################
diff --git a/jsf/features/org.eclipse.jsf.feature/feature.xml b/jsf/features/org.eclipse.jsf.feature/feature.xml
new file mode 100644
index 0000000..9ae8a63
--- /dev/null
+++ b/jsf/features/org.eclipse.jsf.feature/feature.xml
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+      id="org.eclipse.jsf.feature"
+      label="%name"
+      version="3.2.4.qualifier"
+      provider-name="%provider"
+      image="eclipse_update_120.jpg">
+
+   <description>
+      %description
+   </description>
+
+   <copyright>
+      %copyright
+   </copyright>
+
+   <license url="license.html">
+      %license
+   </license>
+
+   <plugin
+         id="org.eclipse.jst.jsf.common"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.jst.jsf.common.runtime"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.jst.jsf.common.ui"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.jst.jsf.core"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.jst.jsf.facelet.core"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.jst.jsf.facelet.ui"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.jst.jsf.facesconfig"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.jst.jsf.facesconfig.ui"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.jst.jsf.ui"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.jst.jsf.standard.tagsupport"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.jsf.branding"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+</feature>
diff --git a/jsf/features/org.eclipse.jsf.feature/license.html b/jsf/features/org.eclipse.jsf.feature/license.html
new file mode 100644
index 0000000..a450af9
--- /dev/null
+++ b/jsf/features/org.eclipse.jsf.feature/license.html
@@ -0,0 +1,97 @@
+<!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>
+
+<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>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> 
+  </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/jsf/features/org.eclipse.jsf.feature/sourceTemplateBundle/about.html b/jsf/features/org.eclipse.jsf.feature/sourceTemplateBundle/about.html
new file mode 100644
index 0000000..fe81d46
--- /dev/null
+++ b/jsf/features/org.eclipse.jsf.feature/sourceTemplateBundle/about.html
@@ -0,0 +1,27 @@
+<!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/jsf/features/org.eclipse.jsf.feature/sourceTemplateBundle/about.ini b/jsf/features/org.eclipse.jsf.feature/sourceTemplateBundle/about.ini
new file mode 100644
index 0000000..2dee36a
--- /dev/null
+++ b/jsf/features/org.eclipse.jsf.feature/sourceTemplateBundle/about.ini
@@ -0,0 +1,31 @@
+# about.ini
+# contains information about a feature
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# "%key" are externalized strings defined in about.properties
+# This file does not need to be translated.
+
+# Property "aboutText" contains blurb for "About" dialog (translated)
+aboutText=%blurb
+
+# Property "windowImage" contains path to window icon (16x16)
+# needed for primary features only
+
+# Property "featureImage" contains path to feature image (32x32)
+featureImage=eclipse32.gif
+
+# Property "aboutImage" contains path to product image (500x330 or 115x164)
+# needed for primary features only
+
+# Property "appName" contains name of the application (not translated)
+# needed for primary features only
+
+# Property "welcomePage" contains path to welcome page (special XML-based format)
+# optional
+
+# Property "welcomePerspective" contains the id of the perspective in which the
+# welcome page is to be opened.
+# optional
+
+
+
+
diff --git a/jsf/features/org.eclipse.jsf.feature/sourceTemplateBundle/about.mappings b/jsf/features/org.eclipse.jsf.feature/sourceTemplateBundle/about.mappings
new file mode 100644
index 0000000..a28390a
--- /dev/null
+++ b/jsf/features/org.eclipse.jsf.feature/sourceTemplateBundle/about.mappings
@@ -0,0 +1,6 @@
+# about.mappings
+# contains fill-ins for about.properties
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file does not need to be translated.
+
+0=@build@
diff --git a/jsf/features/org.eclipse.jsf.feature/sourceTemplateBundle/about.properties b/jsf/features/org.eclipse.jsf.feature/sourceTemplateBundle/about.properties
new file mode 100644
index 0000000..4e33f86
--- /dev/null
+++ b/jsf/features/org.eclipse.jsf.feature/sourceTemplateBundle/about.properties
@@ -0,0 +1,26 @@
+###############################################################################
+# Copyright (c) 2005, 2007 Oracle 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:
+#     Oracle Corporation - initial API and implementation
+###############################################################################
+# about.properties
+# contains externalized strings for about.ini
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# fill-ins are supplied by about.mappings
+# This file should be translated.
+#
+# Do not translate any values surrounded by {}
+
+blurb=JavaServer Faces Tools Source\n\
+\n\
+Version: {featureVersion}\n\
+Build id: {0}\n\
+\n\
+(c) Copyright Eclipse contributors and others 2005.  All rights reserved.\n\
+Visit http://www.eclipse.org/webtools
+
diff --git a/jsf/features/org.eclipse.jsf.feature/sourceTemplateBundle/build.properties b/jsf/features/org.eclipse.jsf.feature/sourceTemplateBundle/build.properties
new file mode 100644
index 0000000..43309f0
--- /dev/null
+++ b/jsf/features/org.eclipse.jsf.feature/sourceTemplateBundle/build.properties
@@ -0,0 +1,13 @@
+###############################################################################
+# Copyright (c) 2001, 2007 Oracle 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:
+#     Oracle Corporation - initial API and implementation
+###############################################################################
+
+bin.includes = about.html, about.ini, about.mappings, about.properties, eclipse32.gif, plugin.properties, plugin.xml, src/**, META-INF/
+sourcePlugin = true
diff --git a/jsf/features/org.eclipse.jsf.feature/sourceTemplateBundle/eclipse32.gif b/jsf/features/org.eclipse.jsf.feature/sourceTemplateBundle/eclipse32.gif
new file mode 100644
index 0000000..e6ad7cc
--- /dev/null
+++ b/jsf/features/org.eclipse.jsf.feature/sourceTemplateBundle/eclipse32.gif
Binary files differ
diff --git a/jsf/features/org.eclipse.jsf.feature/sourceTemplateBundle/eclipse32.png b/jsf/features/org.eclipse.jsf.feature/sourceTemplateBundle/eclipse32.png
new file mode 100644
index 0000000..50ae49d
--- /dev/null
+++ b/jsf/features/org.eclipse.jsf.feature/sourceTemplateBundle/eclipse32.png
Binary files differ
diff --git a/jsf/features/org.eclipse.jsf.feature/sourceTemplateBundle/eclipse_update_120.jpg b/jsf/features/org.eclipse.jsf.feature/sourceTemplateBundle/eclipse_update_120.jpg
new file mode 100644
index 0000000..bfdf708
--- /dev/null
+++ b/jsf/features/org.eclipse.jsf.feature/sourceTemplateBundle/eclipse_update_120.jpg
Binary files differ
diff --git a/jsf/features/org.eclipse.jsf.feature/sourceTemplateBundle/epl-v10.html b/jsf/features/org.eclipse.jsf.feature/sourceTemplateBundle/epl-v10.html
new file mode 100644
index 0000000..022ad29
--- /dev/null
+++ b/jsf/features/org.eclipse.jsf.feature/sourceTemplateBundle/epl-v10.html
@@ -0,0 +1,328 @@
+<html xmlns:o="urn:schemas-microsoft-com:office:office"
+xmlns:w="urn:schemas-microsoft-com:office:word"
+xmlns="http://www.w3.org/TR/REC-html40">
+
+<head>
+<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
+<meta name=ProgId content=Word.Document>
+<meta name=Generator content="Microsoft Word 9">
+<meta name=Originator content="Microsoft Word 9">
+<link rel=File-List
+href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
+<title>Eclipse Public License - Version 1.0</title>
+<!--[if gte mso 9]><xml>
+ <o:DocumentProperties>
+  <o:Revision>2</o:Revision>
+  <o:TotalTime>3</o:TotalTime>
+  <o:Created>2004-03-05T23:03:00Z</o:Created>
+  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
+  <o:Pages>4</o:Pages>
+  <o:Words>1626</o:Words>
+  <o:Characters>9270</o:Characters>
+   <o:Lines>77</o:Lines>
+  <o:Paragraphs>18</o:Paragraphs>
+  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
+  <o:Version>9.4402</o:Version>
+ </o:DocumentProperties>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <w:WordDocument>
+  <w:TrackRevisions/>
+ </w:WordDocument>
+</xml><![endif]-->
+<style>
+<!--
+ /* Font Definitions */
+@font-face
+	{font-family:Tahoma;
+	panose-1:2 11 6 4 3 5 4 4 2 4;
+	mso-font-charset:0;
+	mso-generic-font-family:swiss;
+	mso-font-pitch:variable;
+	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
+ /* Style Definitions */
+p.MsoNormal, li.MsoNormal, div.MsoNormal
+	{mso-style-parent:"";
+	margin:0in;
+	margin-bottom:.0001pt;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	font-family:"Times New Roman";
+	mso-fareast-font-family:"Times New Roman";}
+p
+	{margin-right:0in;
+	mso-margin-top-alt:auto;
+	mso-margin-bottom-alt:auto;
+	margin-left:0in;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	font-family:"Times New Roman";
+	mso-fareast-font-family:"Times New Roman";}
+p.BalloonText, li.BalloonText, div.BalloonText
+	{mso-style-name:"Balloon Text";
+	margin:0in;
+	margin-bottom:.0001pt;
+	mso-pagination:widow-orphan;
+	font-size:8.0pt;
+	font-family:Tahoma;
+	mso-fareast-font-family:"Times New Roman";}
+@page Section1
+	{size:8.5in 11.0in;
+	margin:1.0in 1.25in 1.0in 1.25in;
+	mso-header-margin:.5in;
+	mso-footer-margin:.5in;
+	mso-paper-source:0;}
+div.Section1
+	{page:Section1;}
+-->
+</style>
+</head>
+
+<body lang=EN-US style='tab-interval:.5in'>
+
+<div class=Section1>
+
+<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
+</p>
+
+<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
+THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
+REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
+OF THIS AGREEMENT.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+in the case of the initial Contributor, the initial code and documentation
+distributed under this Agreement, and<br clear=left>
+b) in the case of each subsequent Contributor:</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
+changes to the Program, and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
+additions to the Program;</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
+such changes and/or additions to the Program originate from and are distributed
+by that particular Contributor. A Contribution 'originates' from a Contributor
+if it was added to the Program by such Contributor itself or anyone acting on
+such Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in conjunction
+with the Program under their own license agreement, and (ii) are not derivative
+works of the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
+entity that distributes the Program.</span> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
+claims licensable by a Contributor which are necessarily infringed by the use
+or sale of its Contribution alone or when combined with the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
+distributed in accordance with this Agreement.</span> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
+receives the Program under this Agreement, including all Contributors.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+Subject to the terms of this Agreement, each Contributor hereby grants Recipient
+a non-exclusive, worldwide, royalty-free copyright license to<span
+style='color:red'> </span>reproduce, prepare derivative works of, publicly
+display, publicly perform, distribute and sublicense the Contribution of such
+Contributor, if any, and such derivative works, in source code and object code
+form.</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
+Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
+patent license under Licensed Patents to make, use, sell, offer to sell, import
+and otherwise transfer the Contribution of such Contributor, if any, in source
+code and object code form. This patent license shall apply to the combination
+of the Contribution and the Program if, at the time the Contribution is added
+by the Contributor, such addition of the Contribution causes such combination
+to be covered by the Licensed Patents. The patent license shall not apply to
+any other combinations which include the Contribution. No hardware per se is
+licensed hereunder. </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
+Recipient understands that although each Contributor grants the licenses to its
+Contributions set forth herein, no assurances are provided by any Contributor
+that the Program does not infringe the patent or other intellectual property
+rights of any other entity. Each Contributor disclaims any liability to Recipient
+for claims brought by any other entity based on infringement of intellectual
+property rights or otherwise. As a condition to exercising the rights and
+licenses granted hereunder, each Recipient hereby assumes sole responsibility
+to secure any other intellectual property rights needed, if any. For example,
+if a third party patent license is required to allow Recipient to distribute
+the Program, it is Recipient's responsibility to acquire that license before
+distributing the Program.</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
+Each Contributor represents that to its knowledge it has sufficient copyright
+rights in its Contribution, if any, to grant the copyright license set forth in
+this Agreement. </span></p>
+
+<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
+
+<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
+Program in object code form under its own license agreement, provided that:</span>
+</p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+it complies with the terms and conditions of this Agreement; and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
+its license agreement:</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
+effectively disclaims on behalf of all Contributors all warranties and
+conditions, express and implied, including warranties or conditions of title
+and non-infringement, and implied warranties or conditions of merchantability
+and fitness for a particular purpose; </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
+effectively excludes on behalf of all Contributors all liability for damages,
+including direct, indirect, special, incidental and consequential damages, such
+as lost profits; </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
+states that any provisions which differ from this Agreement are offered by that
+Contributor alone and not by any other party; and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
+states that source code for the Program is available from such Contributor, and
+informs licensees how to obtain it in a reasonable manner on or through a
+medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
+
+<p><span style='font-size:10.0pt'>When the Program is made available in source
+code form:</span> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+it must be made available under this Agreement; and </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
+copy of this Agreement must be included with each copy of the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
+copyright notices contained within the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
+originator of its Contribution, if any, in a manner that reasonably allows
+subsequent Recipients to identify the originator of the Contribution. </span></p>
+
+<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
+
+<p><span style='font-size:10.0pt'>Commercial distributors of software may
+accept certain responsibilities with respect to end users, business partners
+and the like. While this license is intended to facilitate the commercial use
+of the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create potential
+liability for other Contributors. Therefore, if a Contributor includes the
+Program in a commercial product offering, such Contributor (&quot;Commercial
+Contributor&quot;) hereby agrees to defend and indemnify every other
+Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
+costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
+legal actions brought by a third party against the Indemnified Contributor to
+the extent caused by the acts or omissions of such Commercial Contributor in
+connection with its distribution of the Program in a commercial product
+offering. The obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In order
+to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor
+to control, and cooperate with the Commercial Contributor in, the defense and
+any related settlement negotiations. The Indemnified Contributor may participate
+in any such claim at its own expense.</span> </p>
+
+<p><span style='font-size:10.0pt'>For example, a Contributor might include the
+Program in a commercial product offering, Product X. That Contributor is then a
+Commercial Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance claims and
+warranties are such Commercial Contributor's responsibility alone. Under this
+section, the Commercial Contributor would have to defend claims against the
+other Contributors related to those performance claims and warranties, and if a
+court requires any other Contributor to pay any damages as a result, the
+Commercial Contributor must pay those damages.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
+
+<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
+WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
+MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and distributing the
+Program and assumes all risks associated with its exercise of rights under this
+Agreement , including but not limited to the risks and costs of program errors,
+compliance with applicable laws, damage to or loss of data, programs or
+equipment, and unavailability or interruption of operations. </span></p>
+
+<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
+
+<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
+THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
+
+<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
+or unenforceable under applicable law, it shall not affect the validity or
+enforceability of the remainder of the terms of this Agreement, and without
+further action by the parties hereto, such provision shall be reformed to the
+minimum extent necessary to make such provision valid and enforceable.</span> </p>
+
+<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
+against any entity (including a cross-claim or counterclaim in a lawsuit)
+alleging that the Program itself (excluding combinations of the Program with
+other software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the date
+such litigation is filed. </span></p>
+
+<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
+shall terminate if it fails to comply with any of the material terms or
+conditions of this Agreement and does not cure such failure in a reasonable
+period of time after becoming aware of such noncompliance. If all Recipient's
+rights under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive. </span></p>
+
+<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
+copies of this Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The Agreement
+Steward reserves the right to publish new versions (including revisions) of
+this Agreement from time to time. No one other than the Agreement Steward has
+the right to modify this Agreement. The Eclipse Foundation is the initial
+Agreement Steward. The Eclipse Foundation may assign the responsibility to
+serve as the Agreement Steward to a suitable separate entity. Each new version
+of the Agreement will be given a distinguishing version number. The Program
+(including Contributions) may always be distributed subject to the version of
+the Agreement under which it was received. In addition, after a new version of
+the Agreement is published, Contributor may elect to distribute the Program
+(including its Contributions) under the new version. Except as expressly stated
+in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
+the intellectual property of any Contributor under this Agreement, whether
+expressly, by implication, estoppel or otherwise. All rights in the Program not
+expressly granted under this Agreement are reserved.</span> </p>
+
+<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
+State of New York and the intellectual property laws of the United States of
+America. No party to this Agreement will bring a legal action under this
+Agreement more than one year after the cause of action arose. Each party waives
+its rights to a jury trial in any resulting litigation.</span> </p>
+
+<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+</div>
+
+</body>
+
+</html>
diff --git a/jsf/features/org.eclipse.jsf.feature/sourceTemplateBundle/license.html b/jsf/features/org.eclipse.jsf.feature/sourceTemplateBundle/license.html
new file mode 100644
index 0000000..14b1d50
--- /dev/null
+++ b/jsf/features/org.eclipse.jsf.feature/sourceTemplateBundle/license.html
@@ -0,0 +1,83 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<html>
+<head>
+<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
+<title>Eclipse.org Software User Agreement</title>
+</head>
+
+<body lang="EN-US" link=blue vlink=purple>
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>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 &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+   
+<h3>Applicable Licenses</h3>   
+   
+<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
+   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
+   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
+   
+<ul>
+	<li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
+	<li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
+	<li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+	<li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
+</ul>   
+ 
+<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+	<li>The top-level (root) directory</li>
+	<li>Plug-in and Fragment directories</li>
+	<li>Inside Plug-ins and Fragments packaged as JARs</li>
+	<li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
+	<li>Feature directories</li>
+</ul>
+		
+<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
+installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+	<li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+	<li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+	<li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+	<li>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</a>)</li>	
+	<li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
+	<li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+  
+  <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>
+   
+<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>   
+</body>
+</html>
diff --git a/jsf/features/org.eclipse.jsf.feature/sourceTemplateBundle/plugin.properties b/jsf/features/org.eclipse.jsf.feature/sourceTemplateBundle/plugin.properties
new file mode 100644
index 0000000..1c402d4
--- /dev/null
+++ b/jsf/features/org.eclipse.jsf.feature/sourceTemplateBundle/plugin.properties
@@ -0,0 +1,12 @@
+###############################################################################
+# Copyright (c) 2005, 2007 Oracle 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:
+#     Oracle Corporation - initial API and implementation
+###############################################################################
+pluginName=JavaServer Faces Tools - Source
+providerName=Eclipse.org
diff --git a/jsf/features/org.eclipse.jsf.feature/sourceTemplateFeature/build.properties b/jsf/features/org.eclipse.jsf.feature/sourceTemplateFeature/build.properties
new file mode 100644
index 0000000..963f71d
--- /dev/null
+++ b/jsf/features/org.eclipse.jsf.feature/sourceTemplateFeature/build.properties
@@ -0,0 +1,16 @@
+###############################################################################
+# Copyright (c) 2000, 2005 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:
+#     Oracle Corporation- initial API and implementation
+###############################################################################
+bin.includes =\
+epl-v10.html,\
+eclipse_update_120.jpg,\
+feature.xml,\
+feature.properties,\
+license.html
diff --git a/jsf/features/org.eclipse.jsf.feature/sourceTemplateFeature/eclipse_update_120.jpg b/jsf/features/org.eclipse.jsf.feature/sourceTemplateFeature/eclipse_update_120.jpg
new file mode 100644
index 0000000..bfdf708
--- /dev/null
+++ b/jsf/features/org.eclipse.jsf.feature/sourceTemplateFeature/eclipse_update_120.jpg
Binary files differ
diff --git a/jsf/features/org.eclipse.jsf.feature/sourceTemplateFeature/epl-v10.html b/jsf/features/org.eclipse.jsf.feature/sourceTemplateFeature/epl-v10.html
new file mode 100644
index 0000000..022ad29
--- /dev/null
+++ b/jsf/features/org.eclipse.jsf.feature/sourceTemplateFeature/epl-v10.html
@@ -0,0 +1,328 @@
+<html xmlns:o="urn:schemas-microsoft-com:office:office"
+xmlns:w="urn:schemas-microsoft-com:office:word"
+xmlns="http://www.w3.org/TR/REC-html40">
+
+<head>
+<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
+<meta name=ProgId content=Word.Document>
+<meta name=Generator content="Microsoft Word 9">
+<meta name=Originator content="Microsoft Word 9">
+<link rel=File-List
+href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
+<title>Eclipse Public License - Version 1.0</title>
+<!--[if gte mso 9]><xml>
+ <o:DocumentProperties>
+  <o:Revision>2</o:Revision>
+  <o:TotalTime>3</o:TotalTime>
+  <o:Created>2004-03-05T23:03:00Z</o:Created>
+  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
+  <o:Pages>4</o:Pages>
+  <o:Words>1626</o:Words>
+  <o:Characters>9270</o:Characters>
+   <o:Lines>77</o:Lines>
+  <o:Paragraphs>18</o:Paragraphs>
+  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
+  <o:Version>9.4402</o:Version>
+ </o:DocumentProperties>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <w:WordDocument>
+  <w:TrackRevisions/>
+ </w:WordDocument>
+</xml><![endif]-->
+<style>
+<!--
+ /* Font Definitions */
+@font-face
+	{font-family:Tahoma;
+	panose-1:2 11 6 4 3 5 4 4 2 4;
+	mso-font-charset:0;
+	mso-generic-font-family:swiss;
+	mso-font-pitch:variable;
+	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
+ /* Style Definitions */
+p.MsoNormal, li.MsoNormal, div.MsoNormal
+	{mso-style-parent:"";
+	margin:0in;
+	margin-bottom:.0001pt;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	font-family:"Times New Roman";
+	mso-fareast-font-family:"Times New Roman";}
+p
+	{margin-right:0in;
+	mso-margin-top-alt:auto;
+	mso-margin-bottom-alt:auto;
+	margin-left:0in;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	font-family:"Times New Roman";
+	mso-fareast-font-family:"Times New Roman";}
+p.BalloonText, li.BalloonText, div.BalloonText
+	{mso-style-name:"Balloon Text";
+	margin:0in;
+	margin-bottom:.0001pt;
+	mso-pagination:widow-orphan;
+	font-size:8.0pt;
+	font-family:Tahoma;
+	mso-fareast-font-family:"Times New Roman";}
+@page Section1
+	{size:8.5in 11.0in;
+	margin:1.0in 1.25in 1.0in 1.25in;
+	mso-header-margin:.5in;
+	mso-footer-margin:.5in;
+	mso-paper-source:0;}
+div.Section1
+	{page:Section1;}
+-->
+</style>
+</head>
+
+<body lang=EN-US style='tab-interval:.5in'>
+
+<div class=Section1>
+
+<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
+</p>
+
+<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
+THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
+REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
+OF THIS AGREEMENT.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+in the case of the initial Contributor, the initial code and documentation
+distributed under this Agreement, and<br clear=left>
+b) in the case of each subsequent Contributor:</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
+changes to the Program, and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
+additions to the Program;</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
+such changes and/or additions to the Program originate from and are distributed
+by that particular Contributor. A Contribution 'originates' from a Contributor
+if it was added to the Program by such Contributor itself or anyone acting on
+such Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in conjunction
+with the Program under their own license agreement, and (ii) are not derivative
+works of the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
+entity that distributes the Program.</span> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
+claims licensable by a Contributor which are necessarily infringed by the use
+or sale of its Contribution alone or when combined with the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
+distributed in accordance with this Agreement.</span> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
+receives the Program under this Agreement, including all Contributors.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+Subject to the terms of this Agreement, each Contributor hereby grants Recipient
+a non-exclusive, worldwide, royalty-free copyright license to<span
+style='color:red'> </span>reproduce, prepare derivative works of, publicly
+display, publicly perform, distribute and sublicense the Contribution of such
+Contributor, if any, and such derivative works, in source code and object code
+form.</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
+Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
+patent license under Licensed Patents to make, use, sell, offer to sell, import
+and otherwise transfer the Contribution of such Contributor, if any, in source
+code and object code form. This patent license shall apply to the combination
+of the Contribution and the Program if, at the time the Contribution is added
+by the Contributor, such addition of the Contribution causes such combination
+to be covered by the Licensed Patents. The patent license shall not apply to
+any other combinations which include the Contribution. No hardware per se is
+licensed hereunder. </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
+Recipient understands that although each Contributor grants the licenses to its
+Contributions set forth herein, no assurances are provided by any Contributor
+that the Program does not infringe the patent or other intellectual property
+rights of any other entity. Each Contributor disclaims any liability to Recipient
+for claims brought by any other entity based on infringement of intellectual
+property rights or otherwise. As a condition to exercising the rights and
+licenses granted hereunder, each Recipient hereby assumes sole responsibility
+to secure any other intellectual property rights needed, if any. For example,
+if a third party patent license is required to allow Recipient to distribute
+the Program, it is Recipient's responsibility to acquire that license before
+distributing the Program.</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
+Each Contributor represents that to its knowledge it has sufficient copyright
+rights in its Contribution, if any, to grant the copyright license set forth in
+this Agreement. </span></p>
+
+<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
+
+<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
+Program in object code form under its own license agreement, provided that:</span>
+</p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+it complies with the terms and conditions of this Agreement; and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
+its license agreement:</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
+effectively disclaims on behalf of all Contributors all warranties and
+conditions, express and implied, including warranties or conditions of title
+and non-infringement, and implied warranties or conditions of merchantability
+and fitness for a particular purpose; </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
+effectively excludes on behalf of all Contributors all liability for damages,
+including direct, indirect, special, incidental and consequential damages, such
+as lost profits; </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
+states that any provisions which differ from this Agreement are offered by that
+Contributor alone and not by any other party; and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
+states that source code for the Program is available from such Contributor, and
+informs licensees how to obtain it in a reasonable manner on or through a
+medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
+
+<p><span style='font-size:10.0pt'>When the Program is made available in source
+code form:</span> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+it must be made available under this Agreement; and </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
+copy of this Agreement must be included with each copy of the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
+copyright notices contained within the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
+originator of its Contribution, if any, in a manner that reasonably allows
+subsequent Recipients to identify the originator of the Contribution. </span></p>
+
+<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
+
+<p><span style='font-size:10.0pt'>Commercial distributors of software may
+accept certain responsibilities with respect to end users, business partners
+and the like. While this license is intended to facilitate the commercial use
+of the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create potential
+liability for other Contributors. Therefore, if a Contributor includes the
+Program in a commercial product offering, such Contributor (&quot;Commercial
+Contributor&quot;) hereby agrees to defend and indemnify every other
+Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
+costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
+legal actions brought by a third party against the Indemnified Contributor to
+the extent caused by the acts or omissions of such Commercial Contributor in
+connection with its distribution of the Program in a commercial product
+offering. The obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In order
+to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor
+to control, and cooperate with the Commercial Contributor in, the defense and
+any related settlement negotiations. The Indemnified Contributor may participate
+in any such claim at its own expense.</span> </p>
+
+<p><span style='font-size:10.0pt'>For example, a Contributor might include the
+Program in a commercial product offering, Product X. That Contributor is then a
+Commercial Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance claims and
+warranties are such Commercial Contributor's responsibility alone. Under this
+section, the Commercial Contributor would have to defend claims against the
+other Contributors related to those performance claims and warranties, and if a
+court requires any other Contributor to pay any damages as a result, the
+Commercial Contributor must pay those damages.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
+
+<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
+WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
+MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and distributing the
+Program and assumes all risks associated with its exercise of rights under this
+Agreement , including but not limited to the risks and costs of program errors,
+compliance with applicable laws, damage to or loss of data, programs or
+equipment, and unavailability or interruption of operations. </span></p>
+
+<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
+
+<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
+THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
+
+<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
+or unenforceable under applicable law, it shall not affect the validity or
+enforceability of the remainder of the terms of this Agreement, and without
+further action by the parties hereto, such provision shall be reformed to the
+minimum extent necessary to make such provision valid and enforceable.</span> </p>
+
+<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
+against any entity (including a cross-claim or counterclaim in a lawsuit)
+alleging that the Program itself (excluding combinations of the Program with
+other software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the date
+such litigation is filed. </span></p>
+
+<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
+shall terminate if it fails to comply with any of the material terms or
+conditions of this Agreement and does not cure such failure in a reasonable
+period of time after becoming aware of such noncompliance. If all Recipient's
+rights under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive. </span></p>
+
+<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
+copies of this Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The Agreement
+Steward reserves the right to publish new versions (including revisions) of
+this Agreement from time to time. No one other than the Agreement Steward has
+the right to modify this Agreement. The Eclipse Foundation is the initial
+Agreement Steward. The Eclipse Foundation may assign the responsibility to
+serve as the Agreement Steward to a suitable separate entity. Each new version
+of the Agreement will be given a distinguishing version number. The Program
+(including Contributions) may always be distributed subject to the version of
+the Agreement under which it was received. In addition, after a new version of
+the Agreement is published, Contributor may elect to distribute the Program
+(including its Contributions) under the new version. Except as expressly stated
+in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
+the intellectual property of any Contributor under this Agreement, whether
+expressly, by implication, estoppel or otherwise. All rights in the Program not
+expressly granted under this Agreement are reserved.</span> </p>
+
+<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
+State of New York and the intellectual property laws of the United States of
+America. No party to this Agreement will bring a legal action under this
+Agreement more than one year after the cause of action arose. Each party waives
+its rights to a jury trial in any resulting litigation.</span> </p>
+
+<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+</div>
+
+</body>
+
+</html>
diff --git a/jsf/features/org.eclipse.jsf.feature/sourceTemplateFeature/feature.properties b/jsf/features/org.eclipse.jsf.feature/sourceTemplateFeature/feature.properties
new file mode 100644
index 0000000..60a119c
--- /dev/null
+++ b/jsf/features/org.eclipse.jsf.feature/sourceTemplateFeature/feature.properties
@@ -0,0 +1,166 @@
+###############################################################################
+# Copyright (c) 2006 Oracle 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:
+#     Oracle Corporation - initial API and implementation
+###############################################################################
+# feature.properties
+# contains externalized strings for feature.xml
+# "%foo" in feature.xml corresponds to the key "foo" in this file
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file should be translated.
+
+# "featureName" property - name of the feature
+name=JavaServer Faces Tools (JSF) Project
+# "providerName" property - name of the company that provides the feature
+provider=Eclipse Web Tools Platform
+# "description" property - description of the feature
+description=WTP JavaServer Faces Tools (JSF) Project
+
+# "copyright" property - text of the "Feature Update Copyright"
+copyright=\
+Copyright (c) 2006 Oracle Corporation.\
+All rights reserved. This program and the accompanying materials\
+are made available under the terms of the Eclipse Public License v1.0\
+which accompanies this distribution, and is available at\
+http://www.eclipse.org/legal/epl-v10.html\
+\n\
+Contributors:\n\
+    Oracle Corporation - initial API and implementation\n
+################ end of copyright property ####################################
+
+
+# "licenseURL" property - URL of the "Feature License"
+# do not translate value - just change to point to a locale-specific HTML page
+licenseURL=license.html
+
+# "license" property - text of the "Feature Update License"
+# should be plain text version of license agreement pointed to be "licenseURL"
+license=\
+Eclipse Foundation Software User Agreement\n\
+April 14, 2010\n\
+\n\
+Usage Of Content\n\
+\n\
+THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
+OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
+USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
+AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
+NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU\n\
+AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
+AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
+OR NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE\n\
+TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
+OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
+BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
+\n\
+Applicable Licenses\n\
+\n\
+Unless otherwise indicated, all Content made available by the\n\
+Eclipse Foundation is provided to you under the terms and conditions of\n\
+the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
+provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
+For purposes of the EPL, "Program" will mean the Content.\n\
+\n\
+Content includes, but is not limited to, source code, object code,\n\
+documentation and other files maintained in the Eclipse Foundation source code\n\
+repository ("Repository") in software modules ("Modules") and made available\n\
+as downloadable archives ("Downloads").\n\
+\n\
+       - Content may be structured and packaged into modules to facilitate delivering,\n\
+         extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
+         plug-in fragments ("Fragments"), and features ("Features").\n\
+       - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
+         in a directory named "plugins".\n\
+       - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
+         Each Feature may be packaged as a sub-directory in a directory named "features".\n\
+         Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
+         numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
+       - Features may also include other Features ("Included Features"). Within a Feature, files\n\
+         named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
+\n\
+The terms and conditions governing Plug-ins and Fragments should be\n\
+contained in files named "about.html" ("Abouts"). The terms and\n\
+conditions governing Features and Included Features should be contained\n\
+in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
+Licenses may be located in any directory of a Download or Module\n\
+including, but not limited to the following locations:\n\
+\n\
+       - The top-level (root) directory\n\
+       - Plug-in and Fragment directories\n\
+       - Inside Plug-ins and Fragments packaged as JARs\n\
+       - Sub-directories of the directory named "src" of certain Plug-ins\n\
+       - Feature directories\n\
+\n\
+Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
+Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
+Update License") during the installation process. If the Feature contains\n\
+Included Features, the Feature Update License should either provide you\n\
+with the terms and conditions governing the Included Features or inform\n\
+you where you can locate them. Feature Update Licenses may be found in\n\
+the "license" property of files named "feature.properties" found within a Feature.\n\
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
+terms and conditions (or references to such terms and conditions) that\n\
+govern your use of the associated Content in that directory.\n\
+\n\
+THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
+TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
+SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
+\n\
+       - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
+       - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
+       - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
+       - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
+       - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
+\n\
+IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
+TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
+is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
+govern that particular Content.\n\
+\n\
+\n\Use of Provisioning Technology\n\
+\n\
+The Eclipse Foundation makes available provisioning software, examples of which include,\n\
+but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
+the purpose of allowing users to install software, documentation, information and/or\n\
+other materials (collectively "Installable Software"). This capability is provided with\n\
+the intent of allowing such users to install, extend and update Eclipse-based products.\n\
+Information about packaging Installable Software is available at\n\
+http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
+\n\
+You may use Provisioning Technology to allow other parties to install Installable Software.\n\
+You shall be responsible for enabling the applicable license agreements relating to the\n\
+Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
+in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
+making it available in accordance with the Specification, you further acknowledge your\n\
+agreement to, and the acquisition of all necessary rights to permit the following:\n\
+\n\
+       1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
+          the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
+          extending or updating the functionality of an Eclipse-based product.\n\
+       2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
+          Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
+       3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
+          govern the use of the Installable Software ("Installable Software Agreement") and such\n\
+          Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
+          with the Specification. Such Installable Software Agreement must inform the user of the\n\
+          terms and conditions that govern the Installable Software and must solicit acceptance by\n\
+          the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
+          indication of agreement by the user, the provisioning Technology will complete installation\n\
+          of the Installable Software.\n\
+\n\
+Cryptography\n\
+\n\
+Content may contain encryption software. The country in which you are\n\
+currently may have restrictions on the import, possession, and use,\n\
+and/or re-export to another country, of encryption software. BEFORE\n\
+using any encryption software, please check the country's laws,\n\
+regulations and policies concerning the import, possession, or use, and\n\
+re-export of encryption software, to see if this is permitted.\n\
+\n\
+Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
+########### end of license property ##########################################
diff --git a/jsf/features/org.eclipse.jsf.feature/sourceTemplateFeature/license.html b/jsf/features/org.eclipse.jsf.feature/sourceTemplateFeature/license.html
new file mode 100644
index 0000000..c184ca3
--- /dev/null
+++ b/jsf/features/org.eclipse.jsf.feature/sourceTemplateFeature/license.html
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>April 14, 2010</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
+   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
+   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
+
+<ul>
+       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
+       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+       <li>The top-level (root) directory</li>
+       <li>Plug-in and Fragment directories</li>
+       <li>Inside Plug-ins and Fragments packaged as JARs</li>
+       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
+       <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
+installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
+       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
+   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
+   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
+   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
+       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+   (&quot;Specification&quot;).</p>
+
+<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
+   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
+   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
+   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
+       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
+       product.</li>
+       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
+       accessed and copied to the Target Machine.</li>
+       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
+       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
+       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
+       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
+       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
+   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
+   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+</body>
+</html>
diff --git a/jsf/features/org.eclipse.jsf.feature/sourceTemplatePlugin/about.html b/jsf/features/org.eclipse.jsf.feature/sourceTemplatePlugin/about.html
new file mode 100644
index 0000000..e991479
--- /dev/null
+++ b/jsf/features/org.eclipse.jsf.feature/sourceTemplatePlugin/about.html
@@ -0,0 +1,27 @@
+<!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/jsf/features/org.eclipse.jsf.feature/sourceTemplatePlugin/about.ini b/jsf/features/org.eclipse.jsf.feature/sourceTemplatePlugin/about.ini
new file mode 100644
index 0000000..2dee36a
--- /dev/null
+++ b/jsf/features/org.eclipse.jsf.feature/sourceTemplatePlugin/about.ini
@@ -0,0 +1,31 @@
+# about.ini
+# contains information about a feature
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# "%key" are externalized strings defined in about.properties
+# This file does not need to be translated.
+
+# Property "aboutText" contains blurb for "About" dialog (translated)
+aboutText=%blurb
+
+# Property "windowImage" contains path to window icon (16x16)
+# needed for primary features only
+
+# Property "featureImage" contains path to feature image (32x32)
+featureImage=eclipse32.gif
+
+# Property "aboutImage" contains path to product image (500x330 or 115x164)
+# needed for primary features only
+
+# Property "appName" contains name of the application (not translated)
+# needed for primary features only
+
+# Property "welcomePage" contains path to welcome page (special XML-based format)
+# optional
+
+# Property "welcomePerspective" contains the id of the perspective in which the
+# welcome page is to be opened.
+# optional
+
+
+
+
diff --git a/jsf/features/org.eclipse.jsf.feature/sourceTemplatePlugin/about.mappings b/jsf/features/org.eclipse.jsf.feature/sourceTemplatePlugin/about.mappings
new file mode 100644
index 0000000..a28390a
--- /dev/null
+++ b/jsf/features/org.eclipse.jsf.feature/sourceTemplatePlugin/about.mappings
@@ -0,0 +1,6 @@
+# about.mappings
+# contains fill-ins for about.properties
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file does not need to be translated.
+
+0=@build@
diff --git a/jsf/features/org.eclipse.jsf.feature/sourceTemplatePlugin/about.properties b/jsf/features/org.eclipse.jsf.feature/sourceTemplatePlugin/about.properties
new file mode 100644
index 0000000..4e33f86
--- /dev/null
+++ b/jsf/features/org.eclipse.jsf.feature/sourceTemplatePlugin/about.properties
@@ -0,0 +1,26 @@
+###############################################################################
+# Copyright (c) 2005, 2007 Oracle 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:
+#     Oracle Corporation - initial API and implementation
+###############################################################################
+# about.properties
+# contains externalized strings for about.ini
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# fill-ins are supplied by about.mappings
+# This file should be translated.
+#
+# Do not translate any values surrounded by {}
+
+blurb=JavaServer Faces Tools Source\n\
+\n\
+Version: {featureVersion}\n\
+Build id: {0}\n\
+\n\
+(c) Copyright Eclipse contributors and others 2005.  All rights reserved.\n\
+Visit http://www.eclipse.org/webtools
+
diff --git a/jsf/features/org.eclipse.jsf.feature/sourceTemplatePlugin/build.properties b/jsf/features/org.eclipse.jsf.feature/sourceTemplatePlugin/build.properties
new file mode 100644
index 0000000..05582e3
--- /dev/null
+++ b/jsf/features/org.eclipse.jsf.feature/sourceTemplatePlugin/build.properties
@@ -0,0 +1,12 @@
+###############################################################################
+# Copyright (c) 2001, 2007 Oracle 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:
+#     Oracle Corporation - initial API and implementation
+###############################################################################
+bin.includes = about.html, about.ini, about.mappings, about.properties, eclipse32.gif, plugin.properties, plugin.xml, src/**, META-INF/
+sourcePlugin = true
diff --git a/jsf/features/org.eclipse.jsf.feature/sourceTemplatePlugin/eclipse32.gif b/jsf/features/org.eclipse.jsf.feature/sourceTemplatePlugin/eclipse32.gif
new file mode 100644
index 0000000..e6ad7cc
--- /dev/null
+++ b/jsf/features/org.eclipse.jsf.feature/sourceTemplatePlugin/eclipse32.gif
Binary files differ
diff --git a/jsf/features/org.eclipse.jsf.feature/sourceTemplatePlugin/eclipse32.png b/jsf/features/org.eclipse.jsf.feature/sourceTemplatePlugin/eclipse32.png
new file mode 100644
index 0000000..50ae49d
--- /dev/null
+++ b/jsf/features/org.eclipse.jsf.feature/sourceTemplatePlugin/eclipse32.png
Binary files differ
diff --git a/jsf/features/org.eclipse.jsf.feature/sourceTemplatePlugin/eclipse_update_120.jpg b/jsf/features/org.eclipse.jsf.feature/sourceTemplatePlugin/eclipse_update_120.jpg
new file mode 100644
index 0000000..bfdf708
--- /dev/null
+++ b/jsf/features/org.eclipse.jsf.feature/sourceTemplatePlugin/eclipse_update_120.jpg
Binary files differ
diff --git a/jsf/features/org.eclipse.jsf.feature/sourceTemplatePlugin/epl-v10.html b/jsf/features/org.eclipse.jsf.feature/sourceTemplatePlugin/epl-v10.html
new file mode 100644
index 0000000..022ad29
--- /dev/null
+++ b/jsf/features/org.eclipse.jsf.feature/sourceTemplatePlugin/epl-v10.html
@@ -0,0 +1,328 @@
+<html xmlns:o="urn:schemas-microsoft-com:office:office"
+xmlns:w="urn:schemas-microsoft-com:office:word"
+xmlns="http://www.w3.org/TR/REC-html40">
+
+<head>
+<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
+<meta name=ProgId content=Word.Document>
+<meta name=Generator content="Microsoft Word 9">
+<meta name=Originator content="Microsoft Word 9">
+<link rel=File-List
+href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
+<title>Eclipse Public License - Version 1.0</title>
+<!--[if gte mso 9]><xml>
+ <o:DocumentProperties>
+  <o:Revision>2</o:Revision>
+  <o:TotalTime>3</o:TotalTime>
+  <o:Created>2004-03-05T23:03:00Z</o:Created>
+  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
+  <o:Pages>4</o:Pages>
+  <o:Words>1626</o:Words>
+  <o:Characters>9270</o:Characters>
+   <o:Lines>77</o:Lines>
+  <o:Paragraphs>18</o:Paragraphs>
+  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
+  <o:Version>9.4402</o:Version>
+ </o:DocumentProperties>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <w:WordDocument>
+  <w:TrackRevisions/>
+ </w:WordDocument>
+</xml><![endif]-->
+<style>
+<!--
+ /* Font Definitions */
+@font-face
+	{font-family:Tahoma;
+	panose-1:2 11 6 4 3 5 4 4 2 4;
+	mso-font-charset:0;
+	mso-generic-font-family:swiss;
+	mso-font-pitch:variable;
+	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
+ /* Style Definitions */
+p.MsoNormal, li.MsoNormal, div.MsoNormal
+	{mso-style-parent:"";
+	margin:0in;
+	margin-bottom:.0001pt;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	font-family:"Times New Roman";
+	mso-fareast-font-family:"Times New Roman";}
+p
+	{margin-right:0in;
+	mso-margin-top-alt:auto;
+	mso-margin-bottom-alt:auto;
+	margin-left:0in;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	font-family:"Times New Roman";
+	mso-fareast-font-family:"Times New Roman";}
+p.BalloonText, li.BalloonText, div.BalloonText
+	{mso-style-name:"Balloon Text";
+	margin:0in;
+	margin-bottom:.0001pt;
+	mso-pagination:widow-orphan;
+	font-size:8.0pt;
+	font-family:Tahoma;
+	mso-fareast-font-family:"Times New Roman";}
+@page Section1
+	{size:8.5in 11.0in;
+	margin:1.0in 1.25in 1.0in 1.25in;
+	mso-header-margin:.5in;
+	mso-footer-margin:.5in;
+	mso-paper-source:0;}
+div.Section1
+	{page:Section1;}
+-->
+</style>
+</head>
+
+<body lang=EN-US style='tab-interval:.5in'>
+
+<div class=Section1>
+
+<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
+</p>
+
+<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
+THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
+REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
+OF THIS AGREEMENT.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+in the case of the initial Contributor, the initial code and documentation
+distributed under this Agreement, and<br clear=left>
+b) in the case of each subsequent Contributor:</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
+changes to the Program, and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
+additions to the Program;</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
+such changes and/or additions to the Program originate from and are distributed
+by that particular Contributor. A Contribution 'originates' from a Contributor
+if it was added to the Program by such Contributor itself or anyone acting on
+such Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in conjunction
+with the Program under their own license agreement, and (ii) are not derivative
+works of the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
+entity that distributes the Program.</span> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
+claims licensable by a Contributor which are necessarily infringed by the use
+or sale of its Contribution alone or when combined with the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
+distributed in accordance with this Agreement.</span> </p>
+
+<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
+receives the Program under this Agreement, including all Contributors.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+Subject to the terms of this Agreement, each Contributor hereby grants Recipient
+a non-exclusive, worldwide, royalty-free copyright license to<span
+style='color:red'> </span>reproduce, prepare derivative works of, publicly
+display, publicly perform, distribute and sublicense the Contribution of such
+Contributor, if any, and such derivative works, in source code and object code
+form.</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
+Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
+patent license under Licensed Patents to make, use, sell, offer to sell, import
+and otherwise transfer the Contribution of such Contributor, if any, in source
+code and object code form. This patent license shall apply to the combination
+of the Contribution and the Program if, at the time the Contribution is added
+by the Contributor, such addition of the Contribution causes such combination
+to be covered by the Licensed Patents. The patent license shall not apply to
+any other combinations which include the Contribution. No hardware per se is
+licensed hereunder. </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
+Recipient understands that although each Contributor grants the licenses to its
+Contributions set forth herein, no assurances are provided by any Contributor
+that the Program does not infringe the patent or other intellectual property
+rights of any other entity. Each Contributor disclaims any liability to Recipient
+for claims brought by any other entity based on infringement of intellectual
+property rights or otherwise. As a condition to exercising the rights and
+licenses granted hereunder, each Recipient hereby assumes sole responsibility
+to secure any other intellectual property rights needed, if any. For example,
+if a third party patent license is required to allow Recipient to distribute
+the Program, it is Recipient's responsibility to acquire that license before
+distributing the Program.</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
+Each Contributor represents that to its knowledge it has sufficient copyright
+rights in its Contribution, if any, to grant the copyright license set forth in
+this Agreement. </span></p>
+
+<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
+
+<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
+Program in object code form under its own license agreement, provided that:</span>
+</p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+it complies with the terms and conditions of this Agreement; and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
+its license agreement:</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
+effectively disclaims on behalf of all Contributors all warranties and
+conditions, express and implied, including warranties or conditions of title
+and non-infringement, and implied warranties or conditions of merchantability
+and fitness for a particular purpose; </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
+effectively excludes on behalf of all Contributors all liability for damages,
+including direct, indirect, special, incidental and consequential damages, such
+as lost profits; </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
+states that any provisions which differ from this Agreement are offered by that
+Contributor alone and not by any other party; and</span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
+states that source code for the Program is available from such Contributor, and
+informs licensees how to obtain it in a reasonable manner on or through a
+medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
+
+<p><span style='font-size:10.0pt'>When the Program is made available in source
+code form:</span> </p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
+it must be made available under this Agreement; and </span></p>
+
+<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
+copy of this Agreement must be included with each copy of the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
+copyright notices contained within the Program. </span></p>
+
+<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
+originator of its Contribution, if any, in a manner that reasonably allows
+subsequent Recipients to identify the originator of the Contribution. </span></p>
+
+<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
+
+<p><span style='font-size:10.0pt'>Commercial distributors of software may
+accept certain responsibilities with respect to end users, business partners
+and the like. While this license is intended to facilitate the commercial use
+of the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create potential
+liability for other Contributors. Therefore, if a Contributor includes the
+Program in a commercial product offering, such Contributor (&quot;Commercial
+Contributor&quot;) hereby agrees to defend and indemnify every other
+Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
+costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
+legal actions brought by a third party against the Indemnified Contributor to
+the extent caused by the acts or omissions of such Commercial Contributor in
+connection with its distribution of the Program in a commercial product
+offering. The obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In order
+to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor
+to control, and cooperate with the Commercial Contributor in, the defense and
+any related settlement negotiations. The Indemnified Contributor may participate
+in any such claim at its own expense.</span> </p>
+
+<p><span style='font-size:10.0pt'>For example, a Contributor might include the
+Program in a commercial product offering, Product X. That Contributor is then a
+Commercial Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance claims and
+warranties are such Commercial Contributor's responsibility alone. Under this
+section, the Commercial Contributor would have to defend claims against the
+other Contributors related to those performance claims and warranties, and if a
+court requires any other Contributor to pay any damages as a result, the
+Commercial Contributor must pay those damages.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
+
+<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
+WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
+MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and distributing the
+Program and assumes all risks associated with its exercise of rights under this
+Agreement , including but not limited to the risks and costs of program errors,
+compliance with applicable laws, damage to or loss of data, programs or
+equipment, and unavailability or interruption of operations. </span></p>
+
+<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
+
+<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
+AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
+THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
+
+<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
+
+<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
+or unenforceable under applicable law, it shall not affect the validity or
+enforceability of the remainder of the terms of this Agreement, and without
+further action by the parties hereto, such provision shall be reformed to the
+minimum extent necessary to make such provision valid and enforceable.</span> </p>
+
+<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
+against any entity (including a cross-claim or counterclaim in a lawsuit)
+alleging that the Program itself (excluding combinations of the Program with
+other software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the date
+such litigation is filed. </span></p>
+
+<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
+shall terminate if it fails to comply with any of the material terms or
+conditions of this Agreement and does not cure such failure in a reasonable
+period of time after becoming aware of such noncompliance. If all Recipient's
+rights under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive. </span></p>
+
+<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
+copies of this Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The Agreement
+Steward reserves the right to publish new versions (including revisions) of
+this Agreement from time to time. No one other than the Agreement Steward has
+the right to modify this Agreement. The Eclipse Foundation is the initial
+Agreement Steward. The Eclipse Foundation may assign the responsibility to
+serve as the Agreement Steward to a suitable separate entity. Each new version
+of the Agreement will be given a distinguishing version number. The Program
+(including Contributions) may always be distributed subject to the version of
+the Agreement under which it was received. In addition, after a new version of
+the Agreement is published, Contributor may elect to distribute the Program
+(including its Contributions) under the new version. Except as expressly stated
+in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
+the intellectual property of any Contributor under this Agreement, whether
+expressly, by implication, estoppel or otherwise. All rights in the Program not
+expressly granted under this Agreement are reserved.</span> </p>
+
+<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
+State of New York and the intellectual property laws of the United States of
+America. No party to this Agreement will bring a legal action under this
+Agreement more than one year after the cause of action arose. Each party waives
+its rights to a jury trial in any resulting litigation.</span> </p>
+
+<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
+
+</div>
+
+</body>
+
+</html>
diff --git a/jsf/features/org.eclipse.jsf.feature/sourceTemplatePlugin/license.html b/jsf/features/org.eclipse.jsf.feature/sourceTemplatePlugin/license.html
new file mode 100644
index 0000000..fec4a48
--- /dev/null
+++ b/jsf/features/org.eclipse.jsf.feature/sourceTemplatePlugin/license.html
@@ -0,0 +1,82 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<html>
+<head>
+<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
+<title>Eclipse.org Software User Agreement</title>
+</head>
+
+<body lang="EN-US" link=blue vlink=purple>
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>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 &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+   
+<h3>Applicable Licenses</h3>   
+   
+<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
+   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
+   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
+   
+<ul>
+	<li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
+	<li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
+	<li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+	<li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
+</ul>   
+ 
+<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+	<li>The top-level (root) directory</li>
+	<li>Plug-in and Fragment directories</li>
+	<li>Inside Plug-ins and Fragments packaged as JARs</li>
+	<li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
+	<li>Feature directories</li>
+</ul>
+		
+<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
+installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+	<li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+	<li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+	<li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+	<li>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</a>)</li>	
+	<li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
+	<li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+  <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>
+   
+<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>   
+</body>
+</html>
diff --git a/jsf/features/org.eclipse.jsf.feature/sourceTemplatePlugin/plugin.properties b/jsf/features/org.eclipse.jsf.feature/sourceTemplatePlugin/plugin.properties
new file mode 100644
index 0000000..1c402d4
--- /dev/null
+++ b/jsf/features/org.eclipse.jsf.feature/sourceTemplatePlugin/plugin.properties
@@ -0,0 +1,12 @@
+###############################################################################
+# Copyright (c) 2005, 2007 Oracle 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:
+#     Oracle Corporation - initial API and implementation
+###############################################################################
+pluginName=JavaServer Faces Tools - Source
+providerName=Eclipse.org
diff --git a/jsf/features/org.eclipse.jsf_sdk.feature/.project b/jsf/features/org.eclipse.jsf_sdk.feature/.project
new file mode 100644
index 0000000..bf76782
--- /dev/null
+++ b/jsf/features/org.eclipse.jsf_sdk.feature/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.jsf_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/jsf/features/org.eclipse.jsf_sdk.feature/.settings/org.eclipse.core.resources.prefs b/jsf/features/org.eclipse.jsf_sdk.feature/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..fa491bf
--- /dev/null
+++ b/jsf/features/org.eclipse.jsf_sdk.feature/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,3 @@
+#Sun May 27 16:00:47 EDT 2007
+eclipse.preferences.version=1
+encoding/<project>=ISO-8859-1
diff --git a/jsf/features/org.eclipse.jsf_sdk.feature/build.properties b/jsf/features/org.eclipse.jsf_sdk.feature/build.properties
new file mode 100644
index 0000000..a0dbc1f
--- /dev/null
+++ b/jsf/features/org.eclipse.jsf_sdk.feature/build.properties
@@ -0,0 +1,18 @@
+###############################################################################
+# Copyright (c) 2001, 2007 Oracle 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:
+#     Oracle Corporation - initial API and implementation
+###############################################################################
+bin.includes = feature.xml,\
+               license.html,\
+               feature.properties,\
+               epl-v10.html,\
+               eclipse_update_120.jpg
+               
+
+generate.feature@org.eclipse.jsf.feature.source=org.eclipse.jsf.feature
\ No newline at end of file
diff --git a/jsf/features/org.eclipse.jsf_sdk.feature/eclipse_update_120.jpg b/jsf/features/org.eclipse.jsf_sdk.feature/eclipse_update_120.jpg
new file mode 100644
index 0000000..bfdf708
--- /dev/null
+++ b/jsf/features/org.eclipse.jsf_sdk.feature/eclipse_update_120.jpg
Binary files differ
diff --git a/jsf/features/org.eclipse.jsf_sdk.feature/epl-v10.html b/jsf/features/org.eclipse.jsf_sdk.feature/epl-v10.html
new file mode 100644
index 0000000..ed4b196
--- /dev/null
+++ b/jsf/features/org.eclipse.jsf_sdk.feature/epl-v10.html
@@ -0,0 +1,328 @@
+<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/jsf/features/org.eclipse.jsf_sdk.feature/feature.properties b/jsf/features/org.eclipse.jsf_sdk.feature/feature.properties
new file mode 100644
index 0000000..6f8f9d4
--- /dev/null
+++ b/jsf/features/org.eclipse.jsf_sdk.feature/feature.properties
@@ -0,0 +1,161 @@
+###############################################################################
+# Copyright (c) 2005, 2007 Oracle 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:
+#     Oracle Corporation - initial API and implementation
+###############################################################################
+name=JavaServer Faces Tools (JSF) Project SDK
+provider=Eclipse Web Tools Platform
+description=WTP JavaServer Faces Tools (JSF) Project SDK
+
+# "updateSiteName" property - label for the update site
+updateSiteName=The Eclipse Web Tools Platform (WTP) Project update site
+
+# "description" property - description of the feature
+
+# "licenseURL" property - URL of the "Feature License"
+# do not translate value - just change to point to a locale-specific HTML page
+licenseURL=license.html
+
+# "copyright" property - text of the "Feature Update Copyright"
+copyright=\
+Copyright (c) 2006 Oracle Corporation.\
+All rights reserved. This program and the accompanying materials\
+are made available under the terms of the Eclipse Public License v1.0\
+which accompanies this distribution, and is available at\
+http://www.eclipse.org/legal/epl-v10.html\
+\n\
+Contributors:\n\
+    Oracle Corporation - initial API and implementation\n
+################ end of copyright property ####################################
+
+# "license" property - text of the "Feature Update License"
+# should be plain text version of license agreement pointed to be "licenseURL"
+license=\
+Eclipse Foundation Software User Agreement\n\
+April 14, 2010\n\
+\n\
+Usage Of Content\n\
+\n\
+THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
+OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
+USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
+AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
+NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
+AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
+AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
+OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
+TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
+OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
+BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
+\n\
+Applicable Licenses\n\
+\n\
+Unless otherwise indicated, all Content made available by the\n\
+Eclipse Foundation is provided to you under the terms and conditions of\n\
+the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
+provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
+For purposes of the EPL, "Program" will mean the Content.\n\
+\n\
+Content includes, but is not limited to, source code, object code,\n\
+documentation and other files maintained in the Eclipse Foundation source code\n\
+repository ("Repository") in software modules ("Modules") and made available\n\
+as downloadable archives ("Downloads").\n\
+\n\
+   - Content may be structured and packaged into modules to facilitate delivering,\n\
+     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
+     plug-in fragments ("Fragments"), and features ("Features").\n\
+       - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
+     in a directory named "plugins".\n\
+   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
+     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
+     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
+     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
+   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
+     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
+\n\
+The terms and conditions governing Plug-ins and Fragments should be\n\
+contained in files named "about.html" ("Abouts"). The terms and\n\
+conditions governing Features and Included Features should be contained\n\
+in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
+Licenses may be located in any directory of a Download or Module\n\
+including, but not limited to the following locations:\n\
+\n\
+   - The top-level (root) directory\n\
+   - Plug-in and Fragment directories\n\
+   - Inside Plug-ins and Fragments packaged as JARs\n\
+   - Sub-directories of the directory named "src" of certain Plug-ins\n\
+   - Feature directories\n\
+\n\
+Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
+Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
+Update License") during the installation process. If the Feature contains\n\
+Included Features, the Feature Update License should either provide you\n\
+with the terms and conditions governing the Included Features or inform\n\
+you where you can locate them. Feature Update Licenses may be found in\n\
+the "license" property of files named "feature.properties" found within a Feature.\n\
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
+terms and conditions (or references to such terms and conditions) that\n\
+govern your use of the associated Content in that directory.\n\
+\n\
+THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
+TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
+SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
+\n\
+    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
+    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
+    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
+    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
+    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
+\n\
+IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
+TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
+is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
+govern that particular Content.\n\
+\n\
+\n\Use of Provisioning Technology\n\
+\n\
+The Eclipse Foundation makes available provisioning software, examples of which include,\n\
+but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
+the purpose of allowing users to install software, documentation, information and/or\n\
+other materials (collectively "Installable Software"). This capability is provided with\n\
+the intent of allowing such users to install, extend and update Eclipse-based products.\n\
+Information about packaging Installable Software is available at\n\
+http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
+\n\
+You may use Provisioning Technology to allow other parties to install Installable Software.\n\
+You shall be responsible for enabling the applicable license agreements relating to the\n\
+Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
+in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
+making it available in accordance with the Specification, you further acknowledge your\n\
+agreement to, and the acquisition of all necessary rights to permit the following:\n\
+\n\
+       1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
+          the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
+          extending or updating the functionality of an Eclipse-based product.\n\
+       2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
+          Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
+       3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
+          govern the use of the Installable Software ("Installable Software Agreement") and such\n\
+          Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
+          with the Specification. Such Installable Software Agreement must inform the user of the\n\
+          terms and conditions that govern the Installable Software and must solicit acceptance by\n\
+          the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
+          indication of agreement by the user, the provisioning Technology will complete installation\n\
+          of the Installable Software.\n\
+\n\
+Cryptography\n\
+\n\
+Content may contain encryption software. The country in which you are\n\
+currently may have restrictions on the import, possession, and use,\n\
+and/or re-export to another country, of encryption software. BEFORE\n\
+using any encryption software, please check the country's laws,\n\
+regulations and policies concerning the import, possession, or use, and\n\
+re-export of encryption software, to see if this is permitted.\n\
+\n\
+Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
+########### end of license property ##########################################
diff --git a/jsf/features/org.eclipse.jsf_sdk.feature/feature.xml b/jsf/features/org.eclipse.jsf_sdk.feature/feature.xml
new file mode 100644
index 0000000..5939c01
--- /dev/null
+++ b/jsf/features/org.eclipse.jsf_sdk.feature/feature.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+      id="org.eclipse.jsf_sdk.feature"
+      label="%name"
+      version="3.2.4.qualifier"
+      provider-name="%provider"
+      image="eclipse_update_120.jpg">
+
+   <description>
+      %description
+   </description>
+
+   <copyright>
+      %copyright
+   </copyright>
+
+   <license url="license.html">
+      %license
+   </license>
+
+   <includes
+         id="org.eclipse.jsf.feature"
+         version="0.0.0"/>
+
+   <includes
+         id="org.eclipse.jsf.feature.source"
+         version="0.0.0"/>
+
+</feature>
diff --git a/jsf/features/org.eclipse.jsf_sdk.feature/license.html b/jsf/features/org.eclipse.jsf_sdk.feature/license.html
new file mode 100644
index 0000000..5644598
--- /dev/null
+++ b/jsf/features/org.eclipse.jsf_sdk.feature/license.html
@@ -0,0 +1,98 @@
+<!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/jsf/features/org.eclipse.jst.jsf.apache.trinidad.tagsupport.feature/feature.properties b/jsf/features/org.eclipse.jst.jsf.apache.trinidad.tagsupport.feature/feature.properties
index 468a021..a9fe0c3 100644
--- a/jsf/features/org.eclipse.jst.jsf.apache.trinidad.tagsupport.feature/feature.properties
+++ b/jsf/features/org.eclipse.jst.jsf.apache.trinidad.tagsupport.feature/feature.properties
@@ -20,14 +20,12 @@
 # "providerName" property - name of the company that provides the feature
 providerName=Eclipse.org
 
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Web Tools Platform (WTP) Project update site
 
 # "description" property - description of the feature
 description=Apache MyFaces Trinidad Tag Support (Optional)
 
 # "copyright" property - text of the "Feature Update Copyright"
-feature.copyright=\
+copyright=\
 Copyright (c) 2007 Oracle Corporation.\
 All rights reserved. This program and the accompanying materials\
 are made available under the terms of the Eclipse Public License v1.0\
diff --git a/jsf/features/org.eclipse.jst.jsf.apache.trinidad.tagsupport.feature/feature.xml b/jsf/features/org.eclipse.jst.jsf.apache.trinidad.tagsupport.feature/feature.xml
index 94de41f..a9c1677 100644
--- a/jsf/features/org.eclipse.jst.jsf.apache.trinidad.tagsupport.feature/feature.xml
+++ b/jsf/features/org.eclipse.jst.jsf.apache.trinidad.tagsupport.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.jst.jsf.apache.trinidad.tagsupport.feature"
       label="%featureName"
-      version="2.2.100.qualifier"
+      version="2.2.102.qualifier"
       provider-name="%providerName">
 
    <description>
@@ -17,11 +17,6 @@
       %license
    </license>
 
-   <url>
-      <update label="%updateSiteName" url="http://download.eclipse.org/webtools/updates"/>
-      <discovery label="Web Tools Platform (WTP) Updates" url="http://download.eclipse.org/webtools/updates"/>
-   </url>
-
    <requires>
       <import plugin="org.eclipse.ui" version="3.2.0" match="compatible"/>
       <import plugin="org.eclipse.core.runtime" version="3.2.0" match="compatible"/>
diff --git a/jsf/features/org.eclipse.jst.jsf.apache.trinidad.tagsupport.feature/sourceTemplateFeature/feature.properties b/jsf/features/org.eclipse.jst.jsf.apache.trinidad.tagsupport.feature/sourceTemplateFeature/feature.properties
index cf0ac79..bc2ad8e 100644
--- a/jsf/features/org.eclipse.jst.jsf.apache.trinidad.tagsupport.feature/sourceTemplateFeature/feature.properties
+++ b/jsf/features/org.eclipse.jst.jsf.apache.trinidad.tagsupport.feature/sourceTemplateFeature/feature.properties
@@ -22,15 +22,13 @@
 # "providerName" property - name of the company that provides the feature
 providerName=Eclipse.org
 
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Web Tools Platform (WTP) Project update site
 
 # "description" property - description of the feature
 description=Source code zips for WTP Web Page Editor Apache MyFaces Trinidad Tag Support.
 
 # "copyright" property - text of the "Feature Update Copyright"
 copyright=\
-2007 Oracle Corporation and others.\
+Copyright (c) 2007 Oracle 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\
diff --git a/jsf/features/org.eclipse.jst.jsf.apache.trinidad.tagsupport_sdk.feature/feature.properties b/jsf/features/org.eclipse.jst.jsf.apache.trinidad.tagsupport_sdk.feature/feature.properties
index 6aef51f..c76aea4 100644
--- a/jsf/features/org.eclipse.jst.jsf.apache.trinidad.tagsupport_sdk.feature/feature.properties
+++ b/jsf/features/org.eclipse.jst.jsf.apache.trinidad.tagsupport_sdk.feature/feature.properties
@@ -20,19 +20,17 @@
 # "providerName" property - name of the company that provides the feature
 providerName=Eclipse.org
 
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Web Tools Platform (WTP) Project update site
 
 # "description" property - description of the feature
 description=Apache MyFaces Trinidad Tag Support (Optional) SDK
 
 # "copyright" property - text of the "Feature Update Copyright"
-feature.copyright=\
-Copyright (c) 2008 Oracle Corporation.\
-All rights reserved. This program and the accompanying materials\
-are made available under the terms of the Eclipse Public License v1.0\
-which accompanies this distribution, and is available at\
-http://www.eclipse.org/legal/epl-v10.html\
+copyright=\
+Copyright (c) 2008 Oracle Corporation.\n\
+All rights reserved. This program and the accompanying materials\n\
+are made available under the terms of the Eclipse Public License v1.0\n\
+which accompanies this distribution, and is available at\n\
+http://www.eclipse.org/legal/epl-v10.html\n\
 \n\
 Contributors:\n\
     Oracle Corporation - initial API and implementation\n
@@ -46,7 +44,7 @@
 # should be plain text version of license agreement pointed to be "licenseURL"
 license=\
 Eclipse Foundation Software User Agreement\n\
-March 17, 2005\n\
+April 14, 2010\n\
 \n\
 Usage Of Content\n\
 \n\
@@ -54,10 +52,10 @@
 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\
+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\
+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\
@@ -71,21 +69,21 @@
 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\
+documentation and other files maintained in the Eclipse Foundation source code\n\
+repository ("Repository") in software modules ("Modules") and made available\n\
 as downloadable archives ("Downloads").\n\
 \n\
-   - Content may be structured and packaged into modules to facilitate delivering,\n\
-     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-     plug-in fragments ("Fragments"), and features ("Features").\n\
-	- Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
-     in a directory named "plugins".\n\
-   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
+       - Content may be structured and packaged into modules to facilitate delivering,\n\
+         extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
+         plug-in fragments ("Fragments"), and features ("Features").\n\
+       - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
+         in a directory named "plugins".\n\
+       - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
+         Each Feature may be packaged as a sub-directory in a directory named "features".\n\
+         Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
+         numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
+       - Features may also include other Features ("Included Features"). Within a Feature, files\n\
+         named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
 \n\
 The terms and conditions governing Plug-ins and Fragments should be\n\
 contained in files named "about.html" ("Abouts"). The terms and\n\
@@ -94,15 +92,15 @@
 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\
+       - 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\
+Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
+Update License") during the installation process. If the Feature contains\n\
 Included Features, the Feature Update License should either provide you\n\
 with the terms and conditions governing the Included Features or inform\n\
 you where you can locate them. Feature Update Licenses may be found in\n\
@@ -115,18 +113,48 @@
 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 Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
+       - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
+       - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
+       - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
+       - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
 \n\
 IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
 TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
 is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
 govern that particular Content.\n\
 \n\
+\n\Use of Provisioning Technology\n\
+\n\
+The Eclipse Foundation makes available provisioning software, examples of which include,\n\
+but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
+the purpose of allowing users to install software, documentation, information and/or\n\
+other materials (collectively "Installable Software"). This capability is provided with\n\
+the intent of allowing such users to install, extend and update Eclipse-based products.\n\
+Information about packaging Installable Software is available at\n\
+http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
+\n\
+You may use Provisioning Technology to allow other parties to install Installable Software.\n\
+You shall be responsible for enabling the applicable license agreements relating to the\n\
+Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
+in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
+making it available in accordance with the Specification, you further acknowledge your\n\
+agreement to, and the acquisition of all necessary rights to permit the following:\n\
+\n\
+       1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
+          the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
+          extending or updating the functionality of an Eclipse-based product.\n\
+       2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
+          Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
+       3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
+          govern the use of the Installable Software ("Installable Software Agreement") and such\n\
+          Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
+          with the Specification. Such Installable Software Agreement must inform the user of the\n\
+          terms and conditions that govern the Installable Software and must solicit acceptance by\n\
+          the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
+          indication of agreement by the user, the provisioning Technology will complete installation\n\
+          of the Installable Software.\n\
+\n\
 Cryptography\n\
 \n\
 Content may contain encryption software. The country in which you are\n\
@@ -136,5 +164,5 @@
 regulations and policies concerning the import, possession, or use, and\n\
 re-export of encryption software, to see if this is permitted.\n\
 \n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
+Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
 ########### end of license property ##########################################
diff --git a/jsf/features/org.eclipse.jst.jsf.apache.trinidad.tagsupport_sdk.feature/feature.xml b/jsf/features/org.eclipse.jst.jsf.apache.trinidad.tagsupport_sdk.feature/feature.xml
index 29a4f4a..4f1fcf6 100644
--- a/jsf/features/org.eclipse.jst.jsf.apache.trinidad.tagsupport_sdk.feature/feature.xml
+++ b/jsf/features/org.eclipse.jst.jsf.apache.trinidad.tagsupport_sdk.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.jst.jsf.apache.trinidad.tagsupport_sdk.feature"
       label="%featureName"
-      version="2.2.100.qualifier"
+      version="2.2.102.qualifier"
       provider-name="%providerName">
 
    <description>
@@ -17,11 +17,6 @@
       %license
    </license>
 
-   <url>
-      <update label="%updateSiteName" url="http://download.eclipse.org/webtools/updates"/>
-      <discovery label="Web Tools Platform (WTP) Updates" url="http://download.eclipse.org/webtools/updates"/>
-   </url>
-
    <includes
          id="org.eclipse.jst.jsf.apache.trinidad.tagsupport.feature"
          version="0.0.0"/>
diff --git a/jsf/features/org.eclipse.jst.webpageeditor.feature/feature.properties b/jsf/features/org.eclipse.jst.webpageeditor.feature/feature.properties
index d6760ba..6880cac 100644
--- a/jsf/features/org.eclipse.jst.webpageeditor.feature/feature.properties
+++ b/jsf/features/org.eclipse.jst.webpageeditor.feature/feature.properties
@@ -20,14 +20,12 @@
 # "providerName" property - name of the company that provides the feature
 providerName=Eclipse.org
 
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Web Tools Platform (WTP) Project update site
 
 # "description" property - description of the feature
 description=Web Page Editor (Optional)
 
 # "copyright" property - text of the "Feature Update Copyright"
-feature.copyright=\
+copyright=\
 Copyright (c) 2007 Oracle Corporation.\
 All rights reserved. This program and the accompanying materials\
 are made available under the terms of the Eclipse Public License v1.0\
diff --git a/jsf/features/org.eclipse.jst.webpageeditor.feature/feature.xml b/jsf/features/org.eclipse.jst.webpageeditor.feature/feature.xml
index ba411fa..a0631e9 100644
--- a/jsf/features/org.eclipse.jst.webpageeditor.feature/feature.xml
+++ b/jsf/features/org.eclipse.jst.webpageeditor.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.jst.webpageeditor.feature"
       label="%featureName"
-      version="2.3.0.qualifier"
+      version="2.3.3.qualifier"
       provider-name="%providerName"
       image="eclipse_update_120.jpg">
 
@@ -18,11 +18,6 @@
       %license
    </license>
 
-   <url>
-      <update label="%updateSiteName" url="http://download.eclipse.org/webtools/updates"/>
-      <discovery label="Web Tools Platform (WTP) Updates" url="http://download.eclipse.org/webtools/updates"/>
-   </url>
-
    <plugin
          id="org.eclipse.jst.pagedesigner"
          download-size="0"
diff --git a/jsf/features/org.eclipse.jst.webpageeditor.feature/sourceTemplateFeature/feature.properties b/jsf/features/org.eclipse.jst.webpageeditor.feature/sourceTemplateFeature/feature.properties
index 6cdf093..187e431 100644
--- a/jsf/features/org.eclipse.jst.webpageeditor.feature/sourceTemplateFeature/feature.properties
+++ b/jsf/features/org.eclipse.jst.webpageeditor.feature/sourceTemplateFeature/feature.properties
@@ -22,15 +22,13 @@
 # "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=Source code zips for Web Page Editor.
 
 # "copyright" property - text of the "Feature Update Copyright"
 copyright=\
-2007 Oracle Corporation and others.\
+Copyright (c) 2007 Oracle 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\
diff --git a/jsf/features/org.eclipse.jst.webpageeditor_sdk.feature/feature.properties b/jsf/features/org.eclipse.jst.webpageeditor_sdk.feature/feature.properties
index 7fc10d5..9bcac77 100644
--- a/jsf/features/org.eclipse.jst.webpageeditor_sdk.feature/feature.properties
+++ b/jsf/features/org.eclipse.jst.webpageeditor_sdk.feature/feature.properties
@@ -20,14 +20,12 @@
 # "providerName" property - name of the company that provides the feature
 providerName=Eclipse.org
 
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Web Tools Platform (WTP) Project update site
 
 # "description" property - description of the feature
 description=Web Page Editor (Optional) SDK
 
 # "copyright" property - text of the "Feature Update Copyright"
-feature.copyright=\
+copyright=\
 Copyright (c) 2007 Oracle Corporation.\
 All rights reserved. This program and the accompanying materials\
 are made available under the terms of the Eclipse Public License v1.0\
diff --git a/jsf/features/org.eclipse.jst.webpageeditor_sdk.feature/feature.xml b/jsf/features/org.eclipse.jst.webpageeditor_sdk.feature/feature.xml
index c280ec2..fce5a8c 100644
--- a/jsf/features/org.eclipse.jst.webpageeditor_sdk.feature/feature.xml
+++ b/jsf/features/org.eclipse.jst.webpageeditor_sdk.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.jst.webpageeditor_sdk.feature"
       label="%featureName"
-      version="2.3.0.qualifier"
+      version="2.3.3.qualifier"
       provider-name="%providerName">
 
    <description>
@@ -17,11 +17,6 @@
       %license
    </license>
 
-   <url>
-      <update label="%updateSiteName" url="http://download.eclipse.org/webtools/updates"/>
-      <discovery label="Web Tools Platform (WTP) Updates" url="http://download.eclipse.org/webtools/updates"/>
-   </url>
-
    <includes
          id="org.eclipse.jst.webpageeditor.feature"
          version="0.0.0"/>
diff --git a/jsf/plugins/org.eclipse.jst.jsf.apache.trinidad.tagsupport/META-INF/MANIFEST.MF b/jsf/plugins/org.eclipse.jst.jsf.apache.trinidad.tagsupport/META-INF/MANIFEST.MF
index e2f05f8..521510a 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.apache.trinidad.tagsupport/META-INF/MANIFEST.MF
+++ b/jsf/plugins/org.eclipse.jst.jsf.apache.trinidad.tagsupport/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.jst.jsf.apache.trinidad.tagsupport;singleton:=true
-Bundle-Version: 1.1.100.qualifier
+Bundle-Version: 1.1.101.qualifier
 Bundle-Localization: plugin
 Bundle-Activator: org.eclipse.jst.jsf.apache.trinidad.tagsupport.TrinidadTagSupportActivator
 Bundle-Vendor: %pluginProvider
diff --git a/jsf/plugins/org.eclipse.jst.jsf.apache.trinidad.tagsupport/metadata/trinidad.xml b/jsf/plugins/org.eclipse.jst.jsf.apache.trinidad.tagsupport/metadata/trinidad.xml
index 0bb2dd1..218157a 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.apache.trinidad.tagsupport/metadata/trinidad.xml
+++ b/jsf/plugins/org.eclipse.jst.jsf.apache.trinidad.tagsupport/metadata/trinidad.xml
@@ -21,17 +21,17 @@
         <entity id="varStatus"/>
         <entity id="begin">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
         </entity>
         <entity id="end">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
         </entity>
         <entity id="step">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
         </entity>
     </entity>
@@ -55,13 +55,13 @@
 		</trait>    
         <entity id="contentType">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.ContentType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ContentType</value>
             </trait>
         </entity>
         <entity id="filename"/>
         <entity id="method">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
             </trait>
             <trait id="runtime-param-types">
 				<value xsi:type="mdt:ListOfValues">
@@ -79,13 +79,13 @@
 		</trait>        
         <entity id="value">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.ValueBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ValueBindingType</value>
             </trait>
             <trait id="runtime-return-type">
-                <value>java.lang.String</value>
+                <value xsi:type="mdt:StringValue">java.lang.String</value>
             </trait>
 			<trait id="runtime-type-setter-required">
-				<value>true</value>
+				<value xsi:type="mdt:BooleanValue">true</value>
 			</trait>            
         </entity>
     </entity>
@@ -100,20 +100,20 @@
         <entity id="componentType"/>
         <entity id="id">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.ComponentIDType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ComponentIDType</value>
             </trait>
         </entity>
         <entity id="value">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.ValueBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ValueBindingType</value>
             </trait>
             <trait id="runtime-return-type">
-                <value>java.lang.String</value>
+                <value xsi:type="mdt:StringValue">java.lang.String</value>
             </trait>
         </entity>
         <entity id="rendered">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
     </entity>
@@ -125,13 +125,13 @@
 		</trait>   
         <entity id="var">
             <trait id="contributes-value-binding">
-                <value>true</value>
+                <value xsi:type="mdt:BooleanValue">true</value>
             </trait>
             <trait id="value-binding-scope">
-                <value>request</value>
+                <value xsi:type="mdt:StringValue">request</value>
             </trait>
             <trait id="value-binding-symbol-factory">
-                <value>org.eclipse.jst.jsf.common.unknownTypeSymbolFactory</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.common.unknownTypeSymbolFactory</value>
             </trait>
         </entity>
     </entity>
@@ -162,16 +162,16 @@
         <entity id="var"/>
         <entity id="value">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.ValueBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ValueBindingType</value>
             </trait>
             <trait id="runtime-return-type">
-                <value>org.apache.myfaces.trinidad.model.MenuModel</value>
+                <value xsi:type="mdt:StringValue">org.apache.myfaces.trinidad.model.MenuModel</value>
             </trait>
         </entity>
         <entity id="varStatus"/>
         <entity id="orientation">
         	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
             </trait>        	
         	<trait id="valid-values">
 				<value xsi:type="mdt:ListOfValues">
@@ -193,21 +193,21 @@
 		</trait>     	
         <entity id="value">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.ValueBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ValueBindingType</value>
             </trait>
             <trait id="runtime-return-type">
-                <value>org.apache.myfaces.trinidad.model.ChartModel</value>
+                <value xsi:type="mdt:StringValue">org.apache.myfaces.trinidad.model.ChartModel</value>
             </trait>
         </entity>
         <entity id="chartDrillDownListener">
         	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
             </trait>
            	<trait id="runtime-return-type">
-                <value>void</value>
+                <value xsi:type="mdt:StringValue">void</value>
             </trait>
             <trait id="runtime-param-types">
-                <value>org.apache.myfaces.trinidad.event.ChartDrillDownEvent</value>
+                <value xsi:type="mdt:StringValue">org.apache.myfaces.trinidad.event.ChartDrillDownEvent</value>
             </trait>
         </entity>
         <entity id="type">
@@ -235,7 +235,7 @@
         <entity id="templateSource"/>
         <entity id="perspective">
              <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
         <entity id="legendPosition">
@@ -250,37 +250,37 @@
 		</entity>
         <entity id="animationDuration">
              <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
         </entity>
         <entity id="YMajorGridLineCount">
              <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
         </entity>
         <entity id="YMinorGridLineCount">
              <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
         </entity>
         <entity id="XMajorGridLineCount">
              <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
         </entity>
         <entity id="maxPrecision">
              <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
         </entity>
         <entity id="gradientsUsed">
              <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
         <entity id="tooltipsVisible">
              <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
     </entity>
@@ -299,10 +299,10 @@
         <entity id="customColorData"/>
         <entity id="width">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
             <trait id="valid-minimum">
-                <value>0</value>
+                <value xsi:type="mdt:StringValue">0</value>
             </trait>
         </entity>
     </entity>
@@ -343,7 +343,7 @@
         <entity id="sortProperty"/>
         <entity id="align">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
             </trait>
             <trait id="valid-values">
                 <value xsi:type="mdt:ListOfValues">
@@ -355,7 +355,7 @@
         </entity>
         <entity id="defaultSortOrder">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
             </trait>
             <trait id="valid-values">
                 <value xsi:type="mdt:ListOfValues">
@@ -366,29 +366,29 @@
         </entity>
         <entity id="width">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.LengthType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.LengthType</value>
             </trait>
         </entity>
         <entity id="headerText"/>
         <entity id="noWrap">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>        
         </entity>
         <entity id="headerNoWrap">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>   
         </entity>
         <entity id="sortable">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>   
         </entity>
         
         <entity id="separateRows">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>   
         </entity>
         <entity id="rowHeader"/>
@@ -410,7 +410,7 @@
 		</trait>     	
         <entity id="blocking">
              <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
         <entity id="icon"/>
@@ -432,7 +432,7 @@
 		</trait> 		 	
         <entity id="blocking">
              <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
     </entity>
@@ -454,12 +454,12 @@
         <entity id="icon"/>   
     	<entity id="selected">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
     	</entity>
         <entity id="visited">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>        
         </entity>
         <entity id="targetFrame"/>
@@ -483,12 +483,12 @@
 		</trait>    		
         <entity id="title">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
             </trait>
         </entity>
         <entity id="mode">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
             </trait>
             <trait id="valid-values">
 				<value xsi:type="mdt:ListOfValues">
@@ -498,23 +498,23 @@
 				</value>            
             </trait>
            	<trait id="default-value">
-           		<value>default</value>
+           		<value xsi:type="mdt:StringValue">default</value>
            	</trait>
         </entity>        	
         <entity id="onload">
         	<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
 			</trait>
         	<trait id="category">
-           		<value>%property.category.event</value>
+           		<value xsi:type="mdt:StringValue">%property.category.event</value>
            	</trait>
         </entity>
         <entity id="onunload">
         	<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
 			</trait>
         	<trait id="category">
-           		<value>%property.category.event</value>
+           		<value xsi:type="mdt:StringValue">%property.category.event</value>
            	</trait>
         </entity>
         <entity id="initialFocusId"/>
@@ -533,16 +533,16 @@
         <entity id="targetFrame"/>
         <entity id="usesUpload">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>        
         </entity>
         <entity id="defaultCommand"/>
         <entity id="onsubmit">
                 	<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
 			</trait>
         	<trait id="category">
-           		<value>%property.category.event</value>
+           		<value xsi:type="mdt:StringValue">%property.category.event</value>
            	</trait>
         </entity>
     </entity>
@@ -563,13 +563,13 @@
         <entity id="text"/>
         <entity id="disabled">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
         <entity id="textAndAccessKey"/>
         <entity id="accessKey">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.CharacterType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.CharacterType</value>
             </trait>
         </entity>
         <entity id="targetFrame"/>
@@ -592,13 +592,13 @@
         <entity id="text"/>
         <entity id="disabled">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
         <entity id="textAndAccessKey"/>
         <entity id="accessKey">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.CharacterType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.CharacterType</value>
             </trait>
         </entity>
         <entity id="targetFrame"/>
@@ -632,7 +632,7 @@
         <entity id="longDescURL"/>
         <entity id="imageMapType">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
             </trait>
             <trait id="valid-values">
 				<value xsi:type="mdt:ListOfValues">
@@ -676,52 +676,52 @@
    		</trait>   -->             
         <entity id="action">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.ActionType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ActionType</value>
             </trait>
             <trait id="runtime-return-type">
-                <value>java.lang.String</value>
+                <value xsi:type="mdt:StringValue">java.lang.String</value>
             </trait>
         </entity>
         <entity id="actionListener">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
             </trait>
             <trait id="runtime-return-type">
-                <value>void</value>
+                <value xsi:type="mdt:StringValue">void</value>
             </trait>           
             <trait id="runtime-param-types">
-                <value>javax.faces.event.ActionEvent</value>
+                <value xsi:type="mdt:StringValue">javax.faces.event.ActionEvent</value>
             </trait>
         </entity>
         <entity id="returnListener">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
             </trait>
             <trait id="runtime-param-types">
-                <value>org.apache.myfaces.trinidad.event.ReturnEvent</value>
+                <value xsi:type="mdt:StringValue">org.apache.myfaces.trinidad.event.ReturnEvent</value>
             </trait>        
         </entity>
         <entity id="contentStyle">
         	<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.pagedesigner.attributevalues.CSSStyleType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.pagedesigner.attributevalues.CSSStyleType</value>
 			</trait>
 			<trait id="category">
-				<value>%property.category.css</value>
+				<value xsi:type="mdt:StringValue">%property.category.css</value>
 			</trait>	      
         </entity>
         <entity id="compact">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
         <entity id="chooseId">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.ComponentIDType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ComponentIDType</value>
             </trait>
         </entity>
         <entity id="columns">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
         </entity>
     </entity>
@@ -748,48 +748,48 @@
 		</trait>  
         <entity id="action">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.ActionType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ActionType</value>
             </trait>
             <trait id="runtime-return-type">
-                <value>java.lang.String</value>
+                <value xsi:type="mdt:StringValue">java.lang.String</value>
             </trait>
         </entity>
         <entity id="actionListener">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
             </trait>
             <trait id="runtime-return-type">
-                <value>void</value>
+                <value xsi:type="mdt:StringValue">void</value>
             </trait>           
             <trait id="runtime-param-types">
-                <value>javax.faces.event.ActionEvent</value>
+                <value xsi:type="mdt:StringValue">javax.faces.event.ActionEvent</value>
             </trait>
         </entity>
         <entity id="returnListener">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
             </trait>
             <trait id="runtime-param-types">
-                <value>org.apache.myfaces.trinidad.event.ReturnEvent</value>
+                <value xsi:type="mdt:StringValue">org.apache.myfaces.trinidad.event.ReturnEvent</value>
             </trait>        
         </entity>
 	    <entity id="contentStyle">
 	     	<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.pagedesigner.attributevalues.CSSStyleType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.pagedesigner.attributevalues.CSSStyleType</value>
 			</trait>
 			<trait id="category">
-				<value>%property.category.css</value>
+				<value xsi:type="mdt:StringValue">%property.category.css</value>
 			</trait>	       
 	    </entity>
         <entity id="chooseId"/>
         <entity id="columns">
 	     	<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
 			</trait>        
         </entity>
         <entity id="maximumLength">
 	     	<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
 			</trait>        
         </entity>
     </entity>
@@ -816,15 +816,15 @@
 		</trait>    		    	
         <entity id="contentStyle">
         	<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.pagedesigner.attributevalues.CSSStyleType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.pagedesigner.attributevalues.CSSStyleType</value>
 			</trait>
 			<trait id="category">
-				<value>%property.category.css</value>
+				<value xsi:type="mdt:StringValue">%property.category.css</value>
 			</trait>	       
         </entity>
         <entity id="columns">
 	     	<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
 			</trait>        
         </entity>
     </entity>
@@ -867,56 +867,56 @@
 		</trait>      	
         <entity id="action">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.ActionType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ActionType</value>
             </trait>
             <trait id="runtime-return-type">
-                <value>java.lang.String</value>
+                <value xsi:type="mdt:StringValue">java.lang.String</value>
             </trait>
         </entity>
         <entity id="actionListener">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
             </trait>
             <trait id="runtime-param-types">
-                <value>javax.faces.event.ActionEvent</value>
+                <value xsi:type="mdt:StringValue">javax.faces.event.ActionEvent</value>
             </trait>
         </entity>
         <entity id="returnListener">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
             </trait>
             <trait id="runtime-param-types">
-                <value>org.apache.myfaces.trinidad.event.ReturnEvent</value>
+                <value xsi:type="mdt:StringValue">org.apache.myfaces.trinidad.event.ReturnEvent</value>
             </trait>        
         </entity>
        <entity id="contentStyle">
         	<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.pagedesigner.attributevalues.CSSStyleType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.pagedesigner.attributevalues.CSSStyleType</value>
 			</trait>
 			<trait id="category">
-				<value>%property.category.css</value>
+				<value xsi:type="mdt:StringValue">%property.category.css</value>
 			</trait>	       
        </entity>
         <entity id="searchDesc"/>
         <entity id="icon"/>
         <entity id="columns">
 	     	<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
 			</trait>        
         </entity>
         <entity id="maximumLength">
 	     	<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
 			</trait>        
         </entity>
         <entity id="windowWidth">
 	     	<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
 			</trait>        
         </entity>
         <entity id="windowHeight">
 	     	<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
 			</trait>        
         </entity>
     </entity>
@@ -947,35 +947,35 @@
 		</trait>      	   		
         <entity id="contentStyle">
         	<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.pagedesigner.attributevalues.CSSStyleType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.pagedesigner.attributevalues.CSSStyleType</value>
 			</trait>
 			<trait id="category">
-				<value>%property.category.css</value>
+				<value xsi:type="mdt:StringValue">%property.category.css</value>
 			</trait>	       
         </entity>
         <entity id="columns">
 	     	<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
 			</trait>        
         </entity>
         <entity id="maximum">
 	     	<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
 			</trait>        
         </entity>
         <entity id="minimum">
 	     	<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
 			</trait>        
         </entity>
         <entity id="stepSize">
 	     	<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
 			</trait>        
         </entity>
         <entity id="styleClass">
 	     	<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
 			</trait>        
 			<trait id="valid-values">
 			 	<value xsi:type="mdt:ListOfValues">
@@ -1013,23 +1013,23 @@
 		</trait>   		    	    	
        	<entity id="contentStyle">
         	<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.pagedesigner.attributevalues.CSSStyleType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.pagedesigner.attributevalues.CSSStyleType</value>
 			</trait>
 			<trait id="category">
-				<value>%property.category.css</value>
+				<value xsi:type="mdt:StringValue">%property.category.css</value>
 			</trait>	       
        	</entity>
         <entity id="rows">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
             <trait id="valid-minimum">
-                <value>1</value>
+                <value xsi:type="mdt:StringValue">1</value>
             </trait>
         </entity>
         <entity id="wrap">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
             </trait> 
              <trait id="valid-values">
 				<value xsi:type="mdt:ListOfValues">
@@ -1039,27 +1039,27 @@
 				</value>
 			</trait>    
 		    <trait id="default-value">
-                <value>soft</value>
+                <value xsi:type="mdt:StringValue">soft</value>
             </trait> 
         </entity>
         <entity id="secret">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>        
         </entity>
         <entity id="columns">
 	     	<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
 			</trait>        
         </entity>
         <entity id="maximumLength">
 	     	<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
 			</trait>        
         </entity>
         <entity id="styleClass">
 	     	<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
 			</trait>        
 			<trait id="valid-values">
 			 	<value xsi:type="mdt:ListOfValues">
@@ -1087,7 +1087,7 @@
 		</trait>  
         <entity id="name">
         	<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
 			</trait>        
 			<trait id="valid-values">
 			 	<value xsi:type="mdt:ListOfValues">
@@ -1095,7 +1095,7 @@
 				</value>
 			</trait>
 			<trait id="default-value">
-			 	<value>required</value>
+			 	<value xsi:type="mdt:StringValue">required</value>
 			</trait>
 		</entity>			
     </entity>
@@ -1118,44 +1118,44 @@
 		</trait>  
         <entity id="width">
             <trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
 			</trait>   
 		</entity>
         <entity id="height">
             <trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
 			</trait>   
 		</entity>
         <entity id="innerWidth">
             <trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
 			</trait>   
 		</entity>
         <entity id="innerHeight">
             <trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
 			</trait>   
 		</entity>
         <entity id="source"/>
         <entity id="autostart">
             <trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
 			</trait>   
 		</entity>
         <entity id="playCount">
             <trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
 			</trait>   
 		</entity>
         <entity id="contentType">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.ContentType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ContentType</value>
             </trait>
         </entity>
         <entity id="standbyText"/>
         <entity id="player">
         	<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
 			</trait>           
 			<trait id="valid-values">
 			 	<value xsi:type="mdt:ListOfValues">			
@@ -1168,7 +1168,7 @@
         </entity>
         <entity id="controls">
         	<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
 			</trait>           
 			<trait id="valid-values">
 			 	<value xsi:type="mdt:ListOfValues">			
@@ -1180,7 +1180,7 @@
 				</value>
 			</trait>    
 			<trait id="default-value">
-				<value>typical</value>
+				<value xsi:type="mdt:StringValue">typical</value>
 			</trait>    
         </entity>
     </entity>
@@ -1205,7 +1205,7 @@
         <entity id="message"/>
         <entity id="messageType">
         	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
             </trait>
 			<trait id="valid-values">
 			 	<value xsi:type="mdt:ListOfValues">
@@ -1235,7 +1235,7 @@
         <entity id="text"/>
         <entity id="globalOnly">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>		
     </entity>
@@ -1258,29 +1258,29 @@
         <entity id="var"/>
         <entity id="value">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.ValueBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ValueBindingType</value>
             </trait>
             <trait id="runtime-return-type">
-                <value>org.apache.myfaces.trinidad.model.MenuModel</value>
+                <value xsi:type="mdt:StringValue">org.apache.myfaces.trinidad.model.MenuModel</value>
             </trait>
         </entity>
         <entity id="level">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
             <trait id="valid-minimum">
-            	<value>0</value>
+            	<value xsi:type="mdt:StringValue">0</value>
             </trait>
         </entity>
         <entity id="varStatus"/>
         <entity id="disabled">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
         <entity id="hint">
         	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
             </trait>
 			<trait id="valid-values">
 			 	<value xsi:type="mdt:ListOfValues">			
@@ -1314,33 +1314,33 @@
         <entity id="var"/>
         <entity id="rowDisclosureListener">            
         	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
             </trait>
             <trait id="runtime-param-types">
-                <value>org.apache.myfaces.trinidad.event.RowDisclosureEvent</value>
+                <value xsi:type="mdt:StringValue">org.apache.myfaces.trinidad.event.RowDisclosureEvent</value>
             </trait>
         </entity>
         <entity id="disclosedRowKeys"/>
         <entity id="value">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.ValueBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ValueBindingType</value>
             </trait>
             <trait id="runtime-return-type">
-                <value>org.apache.myfaces.trinidad.model.MenuModel</value>
+                <value xsi:type="mdt:StringValue">org.apache.myfaces.trinidad.model.MenuModel</value>
             </trait>
         </entity>
         <entity id="startLevel">
            <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
             <trait id="valid-minimum">
-            	<value>0</value>
+            	<value xsi:type="mdt:StringValue">0</value>
             </trait>
         </entity>        
         <entity id="varStatus"/>
         <entity id="immediate">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
     </entity>
@@ -1361,12 +1361,12 @@
 		</trait>     		      	
         <entity id="titleClass">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.pagedesigner.attributevalues.CSSStyleType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.pagedesigner.attributevalues.CSSStyleType</value>
             </trait>
         </entity>
         <entity id="separatorClass">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.pagedesigner.attributevalues.CSSStyleType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.pagedesigner.attributevalues.CSSStyleType</value>
             </trait>
         </entity>
     </entity>
@@ -1385,7 +1385,7 @@
 		</trait>      	
         <entity id="styleUsage">        	
 			<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
 			</trait>
 			<trait id="valid-values">
 				<value xsi:type="mdt:ListOfValues">
@@ -1395,7 +1395,7 @@
 				</value>
 			</trait>
 			<trait id="category">
-				<value>%property.category.css</value>
+				<value xsi:type="mdt:StringValue">%property.category.css</value>
 			</trait>					
         </entity>
     </entity>
@@ -1414,12 +1414,12 @@
 		</trait>      	
         <entity id="accessKey">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.CharacterType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.CharacterType</value>
             </trait>
         </entity>
         <entity id="showRequired">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
         <entity id="valueAndAccessKey"/>
@@ -1441,7 +1441,7 @@
         <entity id="description"/>
         <entity id="escape">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
     </entity>
@@ -1482,30 +1482,30 @@
         <entity id="var"/>
         <entity id="rowDisclosureListener">            
         	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
             </trait>
             <trait id="runtime-param-types">
-                <value>org.apache.myfaces.trinidad.event.RowDisclosureEvent</value>
+                <value xsi:type="mdt:StringValue">org.apache.myfaces.trinidad.event.RowDisclosureEvent</value>
             </trait>
         </entity>
         <entity id="disclosedRowKeys"/>
         <entity id="value">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.ValueBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ValueBindingType</value>
             </trait>
             <trait id="runtime-return-type">
-                <value>org.apache.myfaces.trinidad.model.MenuModel</value>
+                <value xsi:type="mdt:StringValue">org.apache.myfaces.trinidad.model.MenuModel</value>
             </trait>
         </entity>
         <entity id="varStatus"/>
         <entity id="immediate">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
         <entity id="chromeType">
          	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
             </trait>
 			<trait id="valid-values">
 			 	<value xsi:type="mdt:ListOfValues">
@@ -1529,12 +1529,12 @@
 		</trait>      	
         <entity id="discloseNone">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
         <entity id="discloseMany">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
     </entity>
@@ -1580,7 +1580,7 @@
         <entity id="text"/>
         <entity id="background">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
             </trait>
 			<trait id="valid-values">
 			 	<value xsi:type="mdt:ListOfValues">
@@ -1594,10 +1594,10 @@
         <entity id="icon"/>
        	<entity id="contentStyle">
         	<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.pagedesigner.attributevalues.CSSStyleType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.pagedesigner.attributevalues.CSSStyleType</value>
 			</trait>
 			<trait id="category">
-				<value>%property.category.css</value>
+				<value xsi:type="mdt:StringValue">%property.category.css</value>
 			</trait>	       
        	</entity>
     </entity>
@@ -1614,7 +1614,7 @@
 		</trait>      	
         <entity id="halign">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
             </trait>
 			<trait id="valid-values">
 			 	<value xsi:type="mdt:ListOfValues">
@@ -1661,13 +1661,13 @@
         <entity id="label"/>
         <entity id="accessKey">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.CharacterType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.CharacterType</value>
             </trait>
         </entity>
         <entity id="labelAndAccessKey"/>
         <entity id="position">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
             </trait>
 			<trait id="valid-values">
 			 	<value xsi:type="mdt:ListOfValues">
@@ -1676,12 +1676,12 @@
 				</value>
 			</trait>
 			<trait id="default-value">
-				<value>start</value>
+				<value xsi:type="mdt:StringValue">start</value>
 			</trait>
         </entity>
         <entity id="alignment">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
             </trait>
 			<trait id="valid-values">
 			 	<value xsi:type="mdt:ListOfValues">
@@ -1693,7 +1693,7 @@
 				</value>
 			</trait>
 			<trait id="default-value">
-				<value>center</value>
+				<value xsi:type="mdt:StringValue">center</value>
 			</trait>
         </entity>
     </entity>
@@ -1717,22 +1717,22 @@
 		</trait>  		     	
         <entity id="fieldWidth">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.LengthType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.LengthType</value>
             </trait>
         </entity>
         <entity id="labelWidth">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.LengthType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.LengthType</value>
             </trait>
         </entity>
         <entity id="maxColumns">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
         </entity>
         <entity id="rows">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
         </entity>
     </entity>
@@ -1754,7 +1754,7 @@
 		</trait>
         <entity id="layout">
         	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
             </trait>
 			<trait id="valid-values">
 			 	<value xsi:type="mdt:ListOfValues">
@@ -1780,7 +1780,7 @@
         <entity id="icon"/>
         <entity id="messageType">
         	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
             </trait>
 			<trait id="valid-values">
 			 	<value xsi:type="mdt:ListOfValues">
@@ -1794,10 +1794,10 @@
         </entity>
         <entity id="size">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
             <trait id="default-value">
-            	<value>-1</value>
+            	<value xsi:type="mdt:StringValue">-1</value>
             </trait>
         </entity>
     </entity>
@@ -1820,7 +1820,7 @@
 		</trait>       	
         <entity id="valign">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
             </trait>
             <trait id="valid-values">
                 <value xsi:type="mdt:ListOfValues">
@@ -1833,7 +1833,7 @@
         </entity>
         <entity id="halign">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
             </trait>
             <trait id="valid-values">
                 <value xsi:type="mdt:ListOfValues">
@@ -1867,18 +1867,18 @@
 		</trait>     	
         <entity id="showRequired">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>        
         </entity>
         <entity id="label"/>
         <entity id="labelStyle">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.pagedesigner.attributevalues.CSSStyleType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.pagedesigner.attributevalues.CSSStyleType</value>
             </trait>        
         </entity>
         <entity id="accessKey">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.CharacterType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.CharacterType</value>
             </trait>        
         </entity>
         <entity id="labelAndAccessKey"/>
@@ -1899,12 +1899,12 @@
         <entity id="listStyle"/>
         <entity id="rows">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
         </entity>
         <entity id="maxColumns">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
         </entity>
     </entity>
@@ -1946,17 +1946,17 @@
 		</trait>  
         <entity id="auxiliary1Size">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>        
         </entity>
         <entity id="auxiliary2Size">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>        
         </entity>
         <entity id="auxiliaryGlobalSize">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>        
         </entity>
     </entity>
@@ -1985,7 +1985,7 @@
 		</trait>     		    	 	
         <entity id="chromeType">
          	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
             </trait>
 			<trait id="valid-values">
 			 	<value xsi:type="mdt:ListOfValues">
@@ -2018,7 +2018,7 @@
 		</trait>  	
         <entity id="triggerType">
          	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
             </trait>
 			<trait id="valid-values">
 			 	<value xsi:type="mdt:ListOfValues">
@@ -2032,12 +2032,12 @@
         <entity id="title"/>
         <entity id="modal">
          	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>        
         </entity>
         <entity id="position">
          	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
             </trait>
 			<trait id="valid-values">
 			 	<value xsi:type="mdt:ListOfValues">
@@ -2048,30 +2048,30 @@
         </entity>
         <entity id="xoffset">
          	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>        
         </entity>
         <entity id="yoffset">
          	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>        
         </entity>
        <entity id="contentStyle">
         	<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.pagedesigner.attributevalues.CSSStyleType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.pagedesigner.attributevalues.CSSStyleType</value>
 			</trait>
 			<trait id="category">
-				<value>%property.category.css</value>
+				<value xsi:type="mdt:StringValue">%property.category.css</value>
 			</trait>	       
        </entity>
         <entity id="width">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
         </entity>
         <entity id="height">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
         </entity>
     </entity>
@@ -2090,7 +2090,7 @@
 		</trait>      	
         <entity id="position">
          	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
             </trait>
 			<trait id="valid-values">
 			 	<value xsi:type="mdt:ListOfValues">
@@ -2101,7 +2101,7 @@
         </entity>
         <entity id="alignment">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
             </trait>
 			<trait id="valid-values">
 			 	<value xsi:type="mdt:ListOfValues">
@@ -2113,7 +2113,7 @@
 				</value>
 			</trait>
 			<trait id="default-value">
-				<value>center</value>
+				<value xsi:type="mdt:StringValue">center</value>
 			</trait>
         </entity>
     </entity>
@@ -2135,7 +2135,7 @@
 		</trait>  
         <entity id="width">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.LengthType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.LengthType</value>
             </trait>
         </entity>
     </entity>
@@ -2152,7 +2152,7 @@
 		</trait>
         <entity id="position">
          	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
             </trait>
 			<trait id="valid-values">
 			 	<value xsi:type="mdt:ListOfValues">
@@ -2162,7 +2162,7 @@
 				</value>
 			</trait>
 			<trait id="default-value">
-				<value>both</value>
+				<value xsi:type="mdt:StringValue">both</value>
 			</trait>
         </entity>
     </entity>
@@ -2189,26 +2189,26 @@
 		</trait>      	
         <entity id="immediate">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
         <entity id="pollListener">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
             </trait>
             <trait id="runtime-return-type">
-                <value>void</value>
+                <value xsi:type="mdt:StringValue">void</value>
             </trait>           
             <trait id="runtime-param-types">
-                <value>org.apache.myfaces.trinidad.event.PollEvent</value>
+                <value xsi:type="mdt:StringValue">org.apache.myfaces.trinidad.event.PollEvent</value>
             </trait>        
         </entity>
         <entity id="interval">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
             <trait id="value-minimum">
-            	<value>1</value>
+            	<value xsi:type="mdt:StringValue">1</value>
             </trait>
         </entity>
     </entity>
@@ -2233,10 +2233,10 @@
         <entity id="var"/>
         <entity id="value">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.ValueBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ValueBindingType</value>
             </trait>
             <trait id="runtime-return-type">
-                <value>org.apache.myfaces.trinidad.model.MenuModel</value>
+                <value xsi:type="mdt:StringValue">org.apache.myfaces.trinidad.model.MenuModel</value>
             </trait>
         </entity>
         <entity id="varStatus"/>
@@ -2255,34 +2255,34 @@
 		</trait>      	
         <entity id="value">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.ValueBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ValueBindingType</value>
             </trait>
             <trait id="runtime-return-type">
-                <value>org.apache.myfaces.trinidad.model.BoundedRangeModel</value>
+                <value xsi:type="mdt:StringValue">org.apache.myfaces.trinidad.model.BoundedRangeModel</value>
             </trait>
         </entity>
         <entity id="action">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.ActionType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ActionType</value>
             </trait>
             <trait id="runtime-return-type">
-                <value>java.lang.String</value>
+                <value xsi:type="mdt:StringValue">java.lang.String</value>
             </trait>
         </entity>
         <entity id="actionListener">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
             </trait>
             <trait id="runtime-return-type">
-                <value>void</value>
+                <value xsi:type="mdt:StringValue">void</value>
             </trait>           
             <trait id="runtime-param-types">
-                <value>javax.faces.event.ActionEvent</value>
+                <value xsi:type="mdt:StringValue">javax.faces.event.ActionEvent</value>
             </trait>
         </entity>
         <entity id="immediate">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
     </entity>
@@ -2302,13 +2302,13 @@
         <entity id="text"/>
         <entity id="disabled">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
         <entity id="textAndAccessKey"/>
         <entity id="accessKey">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.CharacterType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.CharacterType</value>
             </trait>
         </entity>
     </entity>
@@ -2335,7 +2335,7 @@
    		</trait>   -->   	
     	<entity id="selected">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
     	</entity>
      </entity>
@@ -2364,7 +2364,7 @@
 		</trait>    		      	
     	<entity id="selected">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
     	</entity>
         <entity id="group"/>
@@ -2381,16 +2381,16 @@
 		</trait>     	  	
         <entity id="value">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.ValueBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ValueBindingType</value>
             </trait>
             <trait id="runtime-return-type">
-                <value>java.lang.Object</value>
+                <value xsi:type="mdt:StringValue">java.lang.Object</value>
             </trait>
         </entity>
         <entity id="label"/>
         <entity id="disabled">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
         <entity id="longDesc"/>
@@ -2420,7 +2420,7 @@
 		</trait>       	
         <entity id="layout">
         	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
             </trait>        	
         	<trait id="valid-values">
 				<value xsi:type="mdt:ListOfValues">
@@ -2454,10 +2454,10 @@
 		</trait>       	
         <entity id="size">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
             <trait id="valid-minimum">
-                <value>1</value>
+                <value xsi:type="mdt:StringValue">1</value>
             </trait>
         </entity>                  
     </entity>
@@ -2489,25 +2489,25 @@
 		</trait>       	     	
         <entity id="size">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
             <trait id="valid-minimum">
-                <value>10</value>
+                <value xsi:type="mdt:StringValue">10</value>
             </trait>
             <trait id="valid-maximum">
-                <value>20</value>
+                <value xsi:type="mdt:StringValue">20</value>
             </trait>            
         </entity>
         <entity id="leadingHeader"/>
         <entity id="trailingHeader"/>
         <entity id="leadingDescShown">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
         <entity id="trailingDescShown">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
     </entity>
@@ -2583,7 +2583,7 @@
 		</trait>   
         <entity id="layout">
         	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
             </trait>        	
         	<trait id="valid-values">
 				<value xsi:type="mdt:ListOfValues">
@@ -2622,27 +2622,27 @@
 
     	<entity id="reorderOnly">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
 		</entity>    	
         <entity id="size">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
             <trait id="valid-minimum">
-                <value>0</value>
+                <value xsi:type="mdt:StringValue">0</value>
             </trait>
         </entity>
         <entity id="leadingHeader"/>
         <entity id="trailingHeader"/>
         <entity id="leadingDescShown">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
 		</entity>  
         <entity id="trailingDescShown">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
 		</entity>  
     </entity>
@@ -2669,15 +2669,15 @@
         <entity id="var"/>
         <entity id="immediate">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
         <entity id="rangeChangeListener">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
             </trait>  
             <trait id="runtime-return-type">
-                <value>void</value>
+                <value xsi:type="mdt:StringValue">void</value>
             </trait>
             <trait id="runtime-param-types">
                 <value xsi:type="mdt:ListOfValues">
@@ -2687,26 +2687,26 @@
         </entity>
         <entity id="value">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.ValueBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ValueBindingType</value>
             </trait>
             <trait id="runtime-return-type">
-                <value>java.lang.Object</value>
+                <value xsi:type="mdt:StringValue">java.lang.Object</value>
             </trait>
         </entity>
         <entity id="rows">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
             <trait id="valid-minimum">
-                <value>0</value>
+                <value xsi:type="mdt:StringValue">0</value>
             </trait>
         </entity>
         <entity id="first">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
             <trait id="valid-minimum">
-                <value>0</value>
+                <value xsi:type="mdt:StringValue">0</value>
             </trait>
         </entity>
     </entity>
@@ -2760,7 +2760,7 @@
         <entity id="icon"/>
         <entity id="messageType">
         	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
             </trait>
 			<trait id="valid-values">
 			 	<value xsi:type="mdt:ListOfValues">
@@ -2774,7 +2774,7 @@
         </entity>
         <entity id="size">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
         </entity>
     </entity>
@@ -2800,27 +2800,27 @@
    		</trait>  -->    	
         <entity id="disabled">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
         <entity id="text">
         	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
             </trait>
         </entity>
         <entity id="textAndAccessKey">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
             </trait>
         </entity>
         <entity id="accessKey">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.CharacterType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.CharacterType</value>
             </trait>
         </entity>
         <entity id="flex">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
         </entity>
     </entity>
@@ -2840,47 +2840,47 @@
 		</trait>    	
         <entity id="selectedStep">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
             <trait id="valid-minimum">
-            	<value>1</value>
+            	<value xsi:type="mdt:StringValue">1</value>
             </trait>
         </entity>
         <entity id="maxStep">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
         </entity>
         <entity id="previousActionListener">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
             </trait>
             <trait id="runtime-param-types">
-                <value>javax.faces.event.ActionEvent</value>
+                <value xsi:type="mdt:StringValue">javax.faces.event.ActionEvent</value>
             </trait>
         </entity>
         <entity id="nextActionListener">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
             </trait>
             <trait id="runtime-param-types">
-                <value>javax.faces.event.ActionEvent</value>
+                <value xsi:type="mdt:StringValue">javax.faces.event.ActionEvent</value>
             </trait>
         </entity>
         <entity id="nextAction">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.ActionType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ActionType</value>
             </trait>
             <trait id="runtime-return-type">
-                <value>java.lang.String</value>
+                <value xsi:type="mdt:StringValue">java.lang.String</value>
             </trait>
         </entity>
         <entity id="previousAction">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.ActionType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ActionType</value>
             </trait>
             <trait id="runtime-return-type">
-                <value>java.lang.String</value>
+                <value xsi:type="mdt:StringValue">java.lang.String</value>
             </trait>
         </entity>
         <entity id="text"/>
@@ -2898,12 +2898,12 @@
 		</trait>
        <entity id="width">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.LengthType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.LengthType</value>
             </trait>        
         </entity>
         <entity id="height">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.LengthType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.LengthType</value>
             </trait>        
         </entity>  
     </entity>
@@ -2936,7 +2936,7 @@
 		</trait>         
         <entity id="default">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>        
         </entity>       
     </entity>
@@ -2980,19 +2980,19 @@
 		</trait>        	    	
         <entity id="var">
             <trait id="contributes-value-binding">
-                <value>true</value>
+                <value xsi:type="mdt:BooleanValue">true</value>
             </trait>
             <trait id="value-binding-scope">
-                <value>request</value>
+                <value xsi:type="mdt:StringValue">request</value>
             </trait>
             <trait id="value-binding-symbol-factory">
-                <value>org.eclipse.jst.jsf.common.unknownTypeSymbolFactory</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.common.unknownTypeSymbolFactory</value>
             </trait>
         </entity>
         <entity id="varStatus"/>
         <entity id="value">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.MultiSignatureValueBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.MultiSignatureValueBindingType</value>
             </trait>
             <trait id="runtime-return-types">
             	<value xsi:type="mdt:ListOfValues">					
@@ -3007,89 +3007,89 @@
         </entity>
         <entity id="rows">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
             <trait id="valid-minimum">
-                <value>0</value>
+                <value xsi:type="mdt:StringValue">0</value>
             </trait>
         </entity>
         <entity id="first">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
             <trait id="valid-minimum">
-                <value>0</value>
+                <value xsi:type="mdt:StringValue">0</value>
             </trait>
         </entity>
         <entity id="rowDisclosureListener">            
         	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
             </trait>
             <trait id="runtime-param-types">
-                <value>org.apache.myfaces.trinidad.event.RowDisclosureEvent</value>
+                <value xsi:type="mdt:StringValue">org.apache.myfaces.trinidad.event.RowDisclosureEvent</value>
             </trait>
         </entity>
         <entity id="disclosedRowKeys"/>
         <entity id="selectionListener">        
         	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
             </trait>
             <trait id="runtime-param-types">
-                <value>org.apache.myfaces.trinidad.event.SelectionEvent</value>
+                <value xsi:type="mdt:StringValue">org.apache.myfaces.trinidad.event.SelectionEvent</value>
             </trait>
         </entity>        
         <entity id="selectedRowKeys"/>
         <entity id="immediate">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
         <entity id="sortListener">        
         	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
             </trait>
             <trait id="runtime-param-types">
-                <value>org.apache.myfaces.trinidad.event.SortEvent</value>
+                <value xsi:type="mdt:StringValue">org.apache.myfaces.trinidad.event.SortEvent</value>
             </trait>
         </entity>        
         <entity id="rangeChangeListener">        
         	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
             </trait>
             <trait id="runtime-param-types">
-                <value>org.apache.myfaces.trinidad.event.RangeChangeEvent</value>
+                <value xsi:type="mdt:StringValue">org.apache.myfaces.trinidad.event.RangeChangeEvent</value>
             </trait>
         </entity>        
         <entity id="horizontalGridVisible">
         	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
         <entity id="verticalGridVisible">
         	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
         <entity id="emptyText"/>
         <entity id="columnBandingInterval">
         	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
             <trait id="valid-minimum">
-            	<value>0</value>
+            	<value xsi:type="mdt:StringValue">0</value>
             </trait>
         </entity>
         <entity id="rowBandingInterval">
         	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
             <trait id="valid-minimum">
-            	<value>0</value>
+            	<value xsi:type="mdt:StringValue">0</value>
             </trait>
         </entity>
         <entity id="rowSelection">
         	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
             </trait>
 			<trait id="valid-values">
 			 	<value xsi:type="mdt:ListOfValues">
@@ -3101,18 +3101,18 @@
         </entity>
         <entity id="autoSubmit">
         	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
         <entity id="width">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.LengthType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.LengthType</value>
             </trait>
         </entity>
         <entity id="summary"/>
         <entity id="allDetailsEnabled">
         	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
     </entity>
@@ -3136,10 +3136,10 @@
         <entity id="var"/>
         <entity id="value">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.ValueBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ValueBindingType</value>
             </trait>
             <trait id="runtime-return-type">
-                <value>org.apache.myfaces.trinidad.model.MenuModel</value>
+                <value xsi:type="mdt:StringValue">org.apache.myfaces.trinidad.model.MenuModel</value>
             </trait>
         </entity>
         <entity id="varStatus"/>
@@ -3166,47 +3166,47 @@
         <entity id="selectedRowKeys"/>
         <entity id="immediate">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
         <entity id="rowDisclosureListener">            
         	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
             </trait>
             <trait id="runtime-param-types">
-                <value>org.apache.myfaces.trinidad.event.RowDisclosureEvent</value>
+                <value xsi:type="mdt:StringValue">org.apache.myfaces.trinidad.event.RowDisclosureEvent</value>
             </trait>
         </entity>
         <entity id="disclosedRowKeys"/>
         <entity id="selectionListener">        
         	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
             </trait>
             <trait id="runtime-param-types">
-                <value>org.apache.myfaces.trinidad.event.SelectionEvent</value>
+                <value xsi:type="mdt:StringValue">org.apache.myfaces.trinidad.event.SelectionEvent</value>
             </trait>
         </entity> 
         <entity id="varStatus"/>
         <entity id="value">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.ValueBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ValueBindingType</value>
             </trait>
             <trait id="runtime-return-type">
-            	<value>org.apache.myfaces.trinidad.model.TreeModel</value>
+            	<value xsi:type="mdt:StringValue">org.apache.myfaces.trinidad.model.TreeModel</value>
             </trait>
         </entity>
         <entity id="focusRowKey"/>
         <entity id="focusListener">        
         	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
             </trait>
             <trait id="runtime-param-types">
-                <value>org.apache.myfaces.trinidad.event.FocusEvent</value>
+                <value xsi:type="mdt:StringValue">org.apache.myfaces.trinidad.event.FocusEvent</value>
             </trait>
         </entity> 
         <entity id="initiallyExpanded">
         	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
     </entity>
@@ -3237,61 +3237,61 @@
         <entity id="selectedRowKeys"/>
         <entity id="immediate">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
         <entity id="rowDisclosureListener">            
         	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
             </trait>
             <trait id="runtime-param-types">
-                <value>org.apache.myfaces.trinidad.event.RowDisclosureEvent</value>
+                <value xsi:type="mdt:StringValue">org.apache.myfaces.trinidad.event.RowDisclosureEvent</value>
             </trait>
         </entity>
         <entity id="disclosedRowKeys"/>
         <entity id="selectionListener">        
         	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
             </trait>
             <trait id="runtime-param-types">
-                <value>org.apache.myfaces.trinidad.event.SelectionEvent</value>
+                <value xsi:type="mdt:StringValue">org.apache.myfaces.trinidad.event.SelectionEvent</value>
             </trait>
         </entity> 
         <entity id="varStatus"/>
         <entity id="value">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.ValueBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ValueBindingType</value>
             </trait>
             <trait id="runtime-return-type">
-                <value>org.apache.myfaces.trinidad.model.TreeModel</value>
+                <value xsi:type="mdt:StringValue">org.apache.myfaces.trinidad.model.TreeModel</value>
             </trait>
         </entity>
         <entity id="focusRowKey"/>
         <entity id="focusListener">        
         	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
             </trait>
             <trait id="runtime-param-types">
-                <value>org.apache.myfaces.trinidad.event.FocusEvent</value>
+                <value xsi:type="mdt:StringValue">org.apache.myfaces.trinidad.event.FocusEvent</value>
             </trait>
         </entity> 
         <entity id="initiallyExpanded">
         	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
         <entity id="rootNodeRendered">
         	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
         <entity id="rowsByDepth"/>
         <entity id="rangeChangeListener">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
             </trait>  
             <trait id="runtime-return-type">
-                <value>void</value>
+                <value xsi:type="mdt:StringValue">void</value>
             </trait>
             <trait id="runtime-param-types">
                 <value xsi:type="mdt:ListOfValues">
@@ -3301,28 +3301,28 @@
         </entity>
         <entity id="horizontalGridVisible">
         	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
         <entity id="verticalGridVisible">
         	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
         <entity id="emptyText"/>
         <entity id="columnBandingInterval">
         	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
         </entity>
         <entity id="rowBandingInterval">
         	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
         </entity>
         <entity id="rowSelection">			
         	<trait id="attribute-value-runtime-type">
-        		<value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+        		<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
         	</trait>
         	<trait id="valid-values">
 	        	<value xsi:type="mdt:ListOfValues">				
@@ -3334,18 +3334,18 @@
 		</entity>
         <entity id="autoSubmit">
         	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
         <entity id="width">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.LengthType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.LengthType</value>
             </trait>
         </entity>
         <entity id="summary"/>
         <entity id="expandAllEnabled">
         	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
     </entity>
@@ -3375,7 +3375,7 @@
         <entity id="varStatus"/>
         <entity id="value">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.MultiSignatureValueBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.MultiSignatureValueBindingType</value>
             </trait>
             <trait id="runtime-return-types">
             	<value xsi:type="mdt:ListOfValues">					
@@ -3390,18 +3390,18 @@
         </entity>
         <entity id="rows">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
             <trait id="valid-minimum">
-                <value>0</value>
+                <value xsi:type="mdt:StringValue">0</value>
             </trait>
         </entity>
         <entity id="first">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
             <trait id="valid-minimum">
-                <value>0</value>
+                <value xsi:type="mdt:StringValue">0</value>
             </trait>
         </entity>
     </entity>
@@ -3416,13 +3416,13 @@
 		</trait>
         <entity id="id">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.ComponentIDType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ComponentIDType</value>
             </trait>
         </entity>
         <entity id="patterns"/>
         <entity id="transparentAllowed">            
         	<trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
         <entity id="messageDetailConvert"/>
@@ -3435,7 +3435,7 @@
 		</trait>	
         <entity id="id">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.ComponentIDType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ComponentIDType</value>
             </trait>
         </entity>
         <entity id="messageDetailConvertDate"/>
@@ -3443,7 +3443,7 @@
         <entity id="messageDetailConvertBoth"/>
         <entity id="dateStyle">
 			<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
 			</trait>
 			<trait id="valid-values">
 				<value xsi:type="mdt:ListOfValues">
@@ -3455,27 +3455,27 @@
 				</value>
 			</trait>
 			<trait id="default-value">
-				<value>default</value>
+				<value xsi:type="mdt:StringValue">default</value>
 			</trait>
 		</entity>
         <entity id="locale">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.LocaleType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.LocaleType</value>
             </trait>        
         </entity>
 		<entity id="pattern">
 			<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.DateTimePatternType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.DateTimePatternType</value>
 			</trait>
 		</entity>
         <entity id="secondaryPattern">
 			<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.DateTimePatternType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.DateTimePatternType</value>
 			</trait>
 		</entity>
         <entity id="timeStyle">			
 			<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
 			</trait>
 			<trait id="valid-values">
 				<value xsi:type="mdt:ListOfValues">
@@ -3487,13 +3487,13 @@
 				</value>
 			</trait>
 			<trait id="default-value">
-				<value>default</value>
+				<value xsi:type="mdt:StringValue">default</value>
 			</trait>
 		</entity>
         <entity id="timeZone"/>
 		<entity id="type">			
 			<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
 			</trait>
 			<trait id="valid-values">
 				<value xsi:type="mdt:ListOfValues">
@@ -3503,7 +3503,7 @@
 				</value>
 			</trait>
 			<trait id="default-value">
-				<value>both</value>
+				<value xsi:type="mdt:StringValue">both</value>
 			</trait>
 		</entity>
     </entity>
@@ -3515,12 +3515,12 @@
 		</trait>		    
         <entity id="id">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.ComponentIDType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ComponentIDType</value>
             </trait>
         </entity>
 		<entity id="currencyCode">
 			<trait id="attribute-value-runtime-type">
-				<value>
+				<value xsi:type="mdt:StringValue">
 					org.eclipse.jst.jsf.core.attributevalues.CurrencyCodeType
 				</value>
 			</trait>
@@ -3532,71 +3532,71 @@
         <entity id="currencySymbol"/>
 		<entity id="groupingUsed">
 			<trait id="attribute-value-runtime-type">
-				<value>
+				<value xsi:type="mdt:StringValue">
 					org.eclipse.jst.jsf.core.attributevalues.BooleanType
 				</value>
 			</trait>
 			<trait id="default-value">
-				<value>true</value>
+				<value xsi:type="mdt:BooleanValue">true</value>
 			</trait>
 		</entity>
 		<entity id="integerOnly">
 			<trait id="attribute-value-runtime-type">
-				<value>
+				<value xsi:type="mdt:StringValue">
 					org.eclipse.jst.jsf.core.attributevalues.BooleanType
 				</value>
 			</trait>
 			<trait id="default-value">
-				<value>false</value>
+				<value xsi:type="mdt:BooleanValue">false</value>
 			</trait>
 		</entity>
 		<entity id="locale">
 			<trait id="attribute-value-runtime-type">
-				<value>
+				<value xsi:type="mdt:StringValue">
 					org.eclipse.jst.jsf.core.attributevalues.LocaleType
 				</value>
 			</trait>
 		</entity>
 		<entity id="maxFractionDigits">
 			<trait id="attribute-value-runtime-type">
-				<value>
+				<value xsi:type="mdt:StringValue">
 					org.eclipse.jst.jsf.core.attributevalues.IntegerType
 				</value>
 			</trait>
-			<trait id="valid-minimum"><value>0</value></trait>
+			<trait id="valid-minimum"><value xsi:type="mdt:StringValue">0</value></trait>
 		</entity>
         <entity id="maxIntegerDigits">
 			<trait id="attribute-value-runtime-type">
-				<value>
+				<value xsi:type="mdt:StringValue">
 					org.eclipse.jst.jsf.core.attributevalues.IntegerType
 				</value>
 			</trait>
-			<trait id="valid-minimum"><value>0</value></trait>
+			<trait id="valid-minimum"><value xsi:type="mdt:StringValue">0</value></trait>
 		</entity>
         <entity id="minFractionDigits">
 			<trait id="attribute-value-runtime-type">
-				<value>
+				<value xsi:type="mdt:StringValue">
 					org.eclipse.jst.jsf.core.attributevalues.IntegerType
 				</value>
 			</trait>
-			<trait id="valid-minimum"><value>0</value></trait>
+			<trait id="valid-minimum"><value xsi:type="mdt:StringValue">0</value></trait>
 		</entity>
         <entity id="minIntegerDigits">
 			<trait id="attribute-value-runtime-type">
-				<value>
+				<value xsi:type="mdt:StringValue">
 					org.eclipse.jst.jsf.core.attributevalues.IntegerType
 				</value>
 			</trait>
-			<trait id="valid-minimum"><value>0</value></trait>
+			<trait id="valid-minimum"><value xsi:type="mdt:StringValue">0</value></trait>
 		</entity>
 		<entity id="pattern">
 			<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.NumberPatternType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.NumberPatternType</value>
 			</trait>
 		</entity>	
 		<entity id="type">
 			<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
 			</trait>
 			<trait id="valid-values">
 				<value xsi:type="mdt:ListOfValues">
@@ -3606,7 +3606,7 @@
 				</value>
 			</trait>
 			<trait id="default-value">
-				<value>number</value>
+				<value xsi:type="mdt:StringValue">number</value>
 			</trait>
 		</entity>
     </entity>
@@ -3620,15 +3620,15 @@
 		</trait>
         <entity id="id">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.ComponentIDType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ComponentIDType</value>
             </trait>
         </entity>
         <entity id="maximum">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
             <trait id="valid-minimum">
-            	<value>1</value>
+            	<value xsi:type="mdt:StringValue">1</value>
             </trait>
         </entity>
         <entity id="encoding"/>
@@ -3642,7 +3642,7 @@
 		</trait>
         <entity id="id">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.ComponentIDType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ComponentIDType</value>
             </trait>
         </entity>
         <entity id="invalidMonths"/>
@@ -3664,7 +3664,7 @@
 		</trait>    
         <entity id="id">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.ComponentIDType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ComponentIDType</value>
             </trait>
         </entity>
         <entity id="maximum"/>
@@ -3685,17 +3685,17 @@
 		</trait>
         <entity id="id">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.ComponentIDType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ComponentIDType</value>
             </trait>
         </entity>
         <entity id="maximum">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.DoubleType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.DoubleType</value>
             </trait>
         </entity>
         <entity id="minimum">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.DoubleType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.DoubleType</value>
             </trait>
         </entity>
         <entity id="messageDetailMaximum"/>
@@ -3714,17 +3714,17 @@
 		</trait>
         <entity id="id">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.ComponentIDType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ComponentIDType</value>
             </trait>
         </entity>
         <entity id="maximum">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
         </entity>
         <entity id="minimum">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
         </entity>
         <entity id="messageDetailMaximum"/>
@@ -3744,17 +3744,17 @@
 		</trait>
         <entity id="id">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.ComponentIDType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ComponentIDType</value>
             </trait>
         </entity>
         <entity id="maximum">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.LongType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.LongType</value>
             </trait>
         </entity>
         <entity id="minimum">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.LongType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.LongType</value>
             </trait>
         </entity>
         <entity id="messageDetailMaximum"/>
@@ -3771,7 +3771,7 @@
 		</trait>
         <entity id="id">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.ComponentIDType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ComponentIDType</value>
             </trait>
         </entity>
         <entity id="pattern"/>
@@ -3780,36 +3780,36 @@
     <entityGroup id="common-core-attributes">
         <entity id="id">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.ComponentIDType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ComponentIDType</value>
             </trait>
             <trait id="category">
-				<value>%property.category.core</value>
+				<value xsi:type="mdt:StringValue">%property.category.core</value>
 			</trait>	
         </entity>
         <entity id="rendered">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
             <trait id="category">
-				<value>%property.category.core</value>
+				<value xsi:type="mdt:StringValue">%property.category.core</value>
 			</trait>	
         </entity>
         <entity id="binding">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.ComponentBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ComponentBindingType</value>
             </trait>
             <trait id="runtime-return-type">
-                <value>javax.faces.component.UIComponent</value>
+                <value xsi:type="mdt:StringValue">javax.faces.component.UIComponent</value>
             </trait><trait id="category">
-				<value>%property.category.core</value>
+				<value xsi:type="mdt:StringValue">%property.category.core</value>
 			</trait>	
         </entity>
         <entity id="attributeChangeListener">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
             </trait>  
             <trait id="runtime-return-type">
-                <value>void</value>
+                <value xsi:type="mdt:StringValue">void</value>
             </trait>
             <trait id="runtime-param-types">
                 <value xsi:type="mdt:ListOfValues">
@@ -3817,181 +3817,181 @@
                 </value>
             </trait>    
             <trait id="category">
-				<value>%property.category.core</value>
+				<value xsi:type="mdt:StringValue">%property.category.core</value>
 			</trait>	    
         </entity>
     </entityGroup>
     <entityGroup id="common-trinidad-attributes">
         <entity id="inlineStyle">
         	<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.pagedesigner.attributevalues.CSSStyleType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.pagedesigner.attributevalues.CSSStyleType</value>
 			</trait>
 			<trait id="category">
-				<value>%property.category.core</value>
+				<value xsi:type="mdt:StringValue">%property.category.core</value>
 			</trait>			
 		</entity>
         <entity id="styleClass">
 			<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.pagedesigner.attributevalues.CSSClassType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.pagedesigner.attributevalues.CSSClassType</value>
 			</trait>
 			<trait id="category">
-				<value>%property.category.core</value>
+				<value xsi:type="mdt:StringValue">%property.category.core</value>
 			</trait>				
         </entity>
         <entity id="shortDesc">
 			<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
 			</trait>        
         	<trait id="category">
-				<value>%property.category.core</value>
+				<value xsi:type="mdt:StringValue">%property.category.core</value>
 			</trait>	
         </entity>
         <entity id="partialTriggers">
 			<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
 			</trait>        
         	<trait id="category">
-				<value>%property.category.core</value>
+				<value xsi:type="mdt:StringValue">%property.category.core</value>
 			</trait>	
         </entity>
     </entityGroup>
 	<entityGroup id="common-event-attributes"> 
 		<entity id="onclick">
 			<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
 			</trait>
 			<trait id="category">
-				<value>%property.category.event</value>
+				<value xsi:type="mdt:StringValue">%property.category.event</value>
 			</trait>			
 		</entity>
 		<entity id="ondblclick">
 			<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
 			</trait>
 			<trait id="category">
-				<value>%property.category.event</value>
+				<value xsi:type="mdt:StringValue">%property.category.event</value>
 			</trait>			
 		</entity>
 		<entity id="onmousedown">
 			<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
 			</trait>
 			<trait id="category">
-				<value>%property.category.event</value>
+				<value xsi:type="mdt:StringValue">%property.category.event</value>
 			</trait>			
 		</entity>
 		<entity id="onmouseup">
 			<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
 			</trait>
 			<trait id="category">
-				<value>%property.category.event</value>
+				<value xsi:type="mdt:StringValue">%property.category.event</value>
 			</trait>			
 		</entity>
 		<entity id="onmouseover">
 			<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
 			</trait>
 			<trait id="category">
-				<value>%property.category.event</value>
+				<value xsi:type="mdt:StringValue">%property.category.event</value>
 			</trait>			
 		</entity>
 		<entity id="onmousemove">
 			<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
 			</trait>
 			<trait id="category">
-				<value>%property.category.event</value>
+				<value xsi:type="mdt:StringValue">%property.category.event</value>
 			</trait>			
 		</entity>
 		<entity id="onmouseout">
 			<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
 			</trait>
 			<trait id="category">
-				<value>%property.category.event</value>
+				<value xsi:type="mdt:StringValue">%property.category.event</value>
 			</trait>			
 		</entity>
 		<entity id="onkeypress">
 			<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
 			</trait>
 			<trait id="category">
-				<value>%property.category.event</value>
+				<value xsi:type="mdt:StringValue">%property.category.event</value>
 			</trait>			
 		</entity>
 		<entity id="onkeydown">
 			<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
 			</trait>
 			<trait id="category">
-				<value>%property.category.event</value>
+				<value xsi:type="mdt:StringValue">%property.category.event</value>
 			</trait>			
 		</entity>
 		<entity id="onkeyup">
 			<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
 			</trait>
 			<trait id="category">
-				<value>%property.category.event</value>
+				<value xsi:type="mdt:StringValue">%property.category.event</value>
 			</trait>			
 		</entity>
 		<!--almost common events - should be refactored-->
 		<entity id="onblur">
 			<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
 			</trait>
 			<trait id="category">
-				<value>%property.category.event</value>
+				<value xsi:type="mdt:StringValue">%property.category.event</value>
 			</trait>			
 		</entity>
 		<entity id="onchange">
 			<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
 			</trait>
 			<trait id="category">
-				<value>%property.category.event</value>
+				<value xsi:type="mdt:StringValue">%property.category.event</value>
 			</trait>			
 		</entity>
 		<entity id="onfocus">
 			<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
 			</trait>
 			<trait id="category">
-				<value>%property.category.event</value>
+				<value xsi:type="mdt:StringValue">%property.category.event</value>
 			</trait>			
 		</entity>
 		<entity id="onselect">
 			<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
 			</trait>
 			<trait id="category">
-				<value>%property.category.event</value>
+				<value xsi:type="mdt:StringValue">%property.category.event</value>
 			</trait>			
 		</entity>					
 	</entityGroup>
     <entityGroup id="common-show-tag-attributes">
         <entity id="disclosed">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>        
         </entity>
         <entity id="disclosedTransient">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
         <entity id="immediate">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
         <entity id="disclosureListener">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
             </trait>  
             <trait id="runtime-return-type">
-                <value>void</value>
+                <value xsi:type="mdt:StringValue">void</value>
             </trait>
             <trait id="runtime-param-types">
                 <value xsi:type="mdt:ListOfValues">
@@ -4003,35 +4003,35 @@
     <entityGroup id="common-value-holder-attributes">
         <entity id="value">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.ValueBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ValueBindingType</value>
             </trait>
             <trait id="runtime-return-type">
-                <value>java.lang.String</value>
+                <value xsi:type="mdt:StringValue">java.lang.String</value>
             </trait>
         </entity>
         <entity id="converter">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.FacesConfigConverterIDType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.FacesConfigConverterIDType</value>
             </trait>
         </entity>
     </entityGroup>
     <entityGroup id="common-input-tag-attributes">
         <entity id="immediate">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
         <entity id="required">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
         <entity id="validator">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
             </trait>
             <trait id="runtime-return-type">
-                <value>void</value>
+                <value xsi:type="mdt:StringValue">void</value>
             </trait>
             <trait id="runtime-param-types">
                 <value xsi:type="mdt:ListOfValues">
@@ -4043,13 +4043,13 @@
         </entity>
         <entity id="valueChangeListener">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
             </trait>
             <trait id="runtime-return-type">
-                <value>void</value>
+                <value xsi:type="mdt:StringValue">void</value>
             </trait>
             <trait id="runtime-param-types">
-                <value>javax.faces.event.ValueChangeEvent</value>
+                <value xsi:type="mdt:StringValue">javax.faces.event.ValueChangeEvent</value>
             </trait>
         </entity>
         <entity id="requiredMessageDetail"/>
@@ -4057,86 +4057,86 @@
     <entityGroup id="common-command-attributes">
         <entity id="action">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.ActionType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ActionType</value>
             </trait>
             <trait id="runtime-return-type">
-                <value>java.lang.String</value>
+                <value xsi:type="mdt:StringValue">java.lang.String</value>
             </trait>
         </entity>
         <entity id="actionListener">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
             </trait>
             <trait id="runtime-param-types">
-                <value>javax.faces.event.ActionEvent</value>
+                <value xsi:type="mdt:StringValue">javax.faces.event.ActionEvent</value>
             </trait>
         </entity>
         <entity id="returnListener">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
             </trait>
             <trait id="runtime-param-types">
-                <value>org.apache.myfaces.trinidad.event.ReturnEvent</value>
+                <value xsi:type="mdt:StringValue">org.apache.myfaces.trinidad.event.ReturnEvent</value>
             </trait>        
         </entity>
         <entity id="launchListener">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
             </trait>
             <trait id="runtime-param-types">
-                <value>org.apache.myfaces.trinidad.event.LaunchEvent</value>
+                <value xsi:type="mdt:StringValue">org.apache.myfaces.trinidad.event.LaunchEvent</value>
             </trait>
         </entity>
         <entity id="immediate">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
         <entity id="useWindow">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
         <entity id="windowHeight">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
         </entity>
         <entity id="windowWidth">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
         </entity>        
         <entity id="accessKey">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.CharacterType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.CharacterType</value>
             </trait>  
         </entity>      
         <entity id="text"/>
         <entity id="disabled">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
         <entity id="textAndAccessKey"/>       
         <entity id="partialSubmit">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
     </entityGroup>
     <entityGroup id="common-select-tag-attributes">
        <entity id="contentStyle">
         	<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.pagedesigner.attributevalues.CSSStyleType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.pagedesigner.attributevalues.CSSStyleType</value>
 			</trait>
 			<trait id="category">
-				<value>%property.category.css</value>
+				<value xsi:type="mdt:StringValue">%property.category.css</value>
 			</trait>	       
        </entity>
        <entity id="valuePassThru">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
        <entity id="unselectedLabel"/>
@@ -4144,17 +4144,17 @@
     <entityGroup id="common-text-attributes">
         <entity id="autoSubmit">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
         <entity id="readOnly">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
         <entity id="disabled">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
         <entity id="text"/>
@@ -4164,28 +4164,28 @@
         <entity id="label"/>
         <entity id="accessKey">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.CharacterType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.CharacterType</value>
             </trait>
         </entity>
         <entity id="labelAndAccessKey"/>
         <entity id="simple">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
         <entity id="showRequired">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>    
         <entity id="readOnly">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
         <entity id="disabled">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
     </entityGroup>
diff --git a/jsf/plugins/org.eclipse.jst.jsf.apache.trinidad.tagsupport/metadata/trinidad_html.xml b/jsf/plugins/org.eclipse.jst.jsf.apache.trinidad.tagsupport/metadata/trinidad_html.xml
index b6d4f6a..a4e045c 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.apache.trinidad.tagsupport/metadata/trinidad_html.xml
+++ b/jsf/plugins/org.eclipse.jst.jsf.apache.trinidad.tagsupport/metadata/trinidad_html.xml
@@ -20,7 +20,7 @@
 		</trait>
         <entity id="firstClickPassed">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
         <entity id="initialFocusId"/>
@@ -42,7 +42,7 @@
         <entity id="shortText"/>
         <entity id="halign">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
             </trait>
 			<trait id="valid-values">
 			 	<value xsi:type="mdt:ListOfValues">
@@ -56,7 +56,7 @@
         </entity>
         <entity id="valign">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
             </trait>
             <trait id="valid-values">
                 <value xsi:type="mdt:ListOfValues">
@@ -68,33 +68,33 @@
         </entity>
         <entity id="width">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.LengthType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.LengthType</value>
             </trait>
         </entity>
         <entity id="height">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.LengthType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.LengthType</value>
             </trait>
         </entity>
         <entity id="columnSpan">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
         </entity>
         <entity id="rowSpan">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
         </entity>
         <entity id="wrappingDisabled">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>
         <entity id="headers"/>
         <entity id="header">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
             </trait>
         </entity>        
     </entity>
@@ -115,33 +115,33 @@
         <entity id="name"/>
         <entity id="width">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.LengthType</value>
+               <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.LengthType</value>
             </trait>
         </entity>
         <entity id="height">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.LengthType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.LengthType</value>
             </trait>
         </entity>
         <entity id="marginWidth">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
             <trait id="valid-minimum">
-            	<value>1</value>
+            	<value xsi:type="mdt:StringValue">1</value>
             </trait>
         </entity>
         <entity id="marginHeight">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
             <trait id="valid-minimum">
-            	<value>1</value>
+            	<value xsi:type="mdt:StringValue">1</value>
             </trait>
         </entity>
         <entity id="scrolling">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
             </trait>
 			<trait id="valid-values">
 			 	<value xsi:type="mdt:ListOfValues">
@@ -151,7 +151,7 @@
 				</value>
 			</trait>
 			<trait id="default-value">
-				<value>auto</value>
+				<value xsi:type="mdt:StringValue">auto</value>
 			</trait>
         </entity>
     </entity>
@@ -185,43 +185,43 @@
 		</trait>
         <entity id="onload">
 			<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
 			</trait>
 			<trait id="category">
-				<value>%property.category.event</value>
+				<value xsi:type="mdt:StringValue">%property.category.event</value>
 			</trait>			
 		</entity>
         <entity id="onunload">
 			<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
 			</trait>
 			<trait id="category">
-				<value>%property.category.event</value>
+				<value xsi:type="mdt:StringValue">%property.category.event</value>
 			</trait>			
 		</entity>
         <entity id="width">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.LengthType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.LengthType</value>
             </trait>
         </entity>
         <entity id="height">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.LengthType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.LengthType</value>
             </trait>
         </entity>
         <entity id="frameSpacing">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
         </entity>
         <entity id="borderWidth">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
         </entity>
         <entity id="frameBorderWidth">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
         </entity>
     </entity>
@@ -247,7 +247,7 @@
 		</trait>
         <entity id="mode">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
             </trait>
 			<trait id="valid-values">
 			 	<value xsi:type="mdt:ListOfValues">
@@ -257,7 +257,7 @@
 				</value>
 			</trait>
 			<trait id="default-value">
-				<value>default</value>
+				<value xsi:type="mdt:StringValue">default</value>
 			</trait>
         </entity>
     </entity>
@@ -277,7 +277,7 @@
 		</trait>
         <entity id="halign">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
             </trait>
 			<trait id="valid-values">
 			 	<value xsi:type="mdt:ListOfValues">
@@ -291,7 +291,7 @@
         </entity>
         <entity id="valign">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
             </trait>
             <trait id="valid-values">
                 <value xsi:type="mdt:ListOfValues">
@@ -303,7 +303,7 @@
         </entity>
         <entity id="width">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.LengthType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.LengthType</value>
             </trait>
         </entity>              
     </entity>
@@ -345,12 +345,12 @@
 		</trait>
         <entity id="width">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.LengthType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.LengthType</value>
             </trait>
         </entity>
         <entity id="halign">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.StringType</value>
             </trait>
 			<trait id="valid-values">
 			 	<value xsi:type="mdt:ListOfValues">
@@ -364,17 +364,17 @@
         </entity>
         <entity id="cellSpacing">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
         </entity>
         <entity id="cellPadding">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
         </entity>
         <entity id="borderWidth">
             <trait id="attribute-value-runtime-type">
-                <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+                <value xsi:type="mdt:StringValue">org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
             </trait>
         </entity>
         <entity id="summary"/>      
@@ -382,18 +382,18 @@
     <entityGroup id="common-trinidadh-attributes">
         <entity id="inlineStyle">
         	<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.pagedesigner.attributevalues.CSSStyleType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.pagedesigner.attributevalues.CSSStyleType</value>
 			</trait>
 			<trait id="category">
-				<value>%property.category.core</value>
+				<value xsi:type="mdt:StringValue">%property.category.core</value>
 			</trait>			
 		</entity>
         <entity id="styleClass">
 			<trait id="attribute-value-runtime-type">
-				<value>org.eclipse.jst.pagedesigner.attributevalues.CSSClassType</value>
+				<value xsi:type="mdt:StringValue">org.eclipse.jst.pagedesigner.attributevalues.CSSClassType</value>
 			</trait>
 			<trait id="category">
-				<value>%property.category.core</value>
+				<value xsi:type="mdt:StringValue">%property.category.core</value>
 			</trait>				
         </entity>
         <entity id="shortDesc"/>
@@ -401,7 +401,7 @@
     <entityGroup id="common-partialTrigger-attribute">
     	<entity id="partialTriggers">
     		<trait id="category">
-				<value>%property.category.core</value>
+				<value xsi:type="mdt:StringValue">%property.category.core</value>
 			</trait>
     	</entity>
     </entityGroup>
diff --git a/jsf/plugins/org.eclipse.jst.jsf.apache.trinidad.tagsupport/metadata/trinidad_html_pi.xml b/jsf/plugins/org.eclipse.jst.jsf.apache.trinidad.tagsupport/metadata/trinidad_html_pi.xml
index ac1e508..eda1f72 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.apache.trinidad.tagsupport/metadata/trinidad_html_pi.xml
+++ b/jsf/plugins/org.eclipse.jst.jsf.apache.trinidad.tagsupport/metadata/trinidad_html_pi.xml
@@ -7,7 +7,7 @@
     xmlns:mdt="http://org.eclipse.jst.jsf.common.metadata/metadataTraitTypes.ecore" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     
     <trait id="is-jsf-component-library">
-		<value>true</value>
+		<value xsi:type="mdt:BooleanValue">true</value>
 	</trait>
     
     <entity id="styleSheet" type="tag"/>
diff --git a/jsf/plugins/org.eclipse.jst.jsf.apache.trinidad.tagsupport/metadata/trinidad_pi.xml b/jsf/plugins/org.eclipse.jst.jsf.apache.trinidad.tagsupport/metadata/trinidad_pi.xml
index fc42ca6..bd2caca 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.apache.trinidad.tagsupport/metadata/trinidad_pi.xml
+++ b/jsf/plugins/org.eclipse.jst.jsf.apache.trinidad.tagsupport/metadata/trinidad_pi.xml
@@ -7,7 +7,7 @@
     xmlns:mdt="http://org.eclipse.jst.jsf.common.metadata/metadataTraitTypes.ecore" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     
     <trait id="is-jsf-component-library">
-		<value>true</value>
+		<value xsi:type="mdt:BooleanValue">true</value>
 	</trait>
     
     <entity id="forEach" type="tag"/>
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.runtime/src/org/eclipse/jst/jsf/common/runtime/internal/view/model/common/Namespace.java b/jsf/plugins/org.eclipse.jst.jsf.common.runtime/src/org/eclipse/jst/jsf/common/runtime/internal/view/model/common/Namespace.java
index aabf975..ee0259f 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common.runtime/src/org/eclipse/jst/jsf/common/runtime/internal/view/model/common/Namespace.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common.runtime/src/org/eclipse/jst/jsf/common/runtime/internal/view/model/common/Namespace.java
@@ -37,7 +37,7 @@
      * @return the view elements in this namespace. May be empty but MUST NOT BE
      *         NULL.
      */
-    public abstract Collection getViewElements();
+    public abstract Collection<? extends ITagElement> getViewElements();
     
     /**
      * This method should be light weight if possible.  Unlike calling
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/.options b/jsf/plugins/org.eclipse.jst.jsf.common/.options
index 41f99dd..be5aa7c 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common/.options
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/.options
@@ -1,2 +1,3 @@
 org.eclipse.jst.jsf.common/debug=false
 org.eclipse.jst.jsf.common/debug/metadataload=false
+org.eclipse.jst.jsf.common/debug/lifecyclelistener=false
\ No newline at end of file
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/META-INF/MANIFEST.MF b/jsf/plugins/org.eclipse.jst.jsf.common/META-INF/MANIFEST.MF
index 6cd16a5..bb17467 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common/META-INF/MANIFEST.MF
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %plugin.name
 Bundle-SymbolicName: org.eclipse.jst.jsf.common;singleton:=true
-Bundle-Version: 1.2.0.qualifier
+Bundle-Version: 1.2.2.qualifier
 Bundle-Activator: org.eclipse.jst.jsf.common.JSFCommonPlugin$Implementation
 Bundle-Localization: plugin
 Export-Package: org.eclipse.jst.jsf.common;x-internal:=true,
@@ -11,10 +11,10 @@
  org.eclipse.jst.jsf.common.facet.libraryprovider;x-internal:=true,
  org.eclipse.jst.jsf.common.facet.libraryprovider.jsf;x-internal:=true,
  org.eclipse.jst.jsf.common.internal;x-friends:="org.eclipse.jst.jsf.core",
- org.eclipse.jst.jsf.common.internal.componentcore,
+ org.eclipse.jst.jsf.common.internal.componentcore;x-internal:=true,
  org.eclipse.jst.jsf.common.internal.finder;x-internal:=true,
- org.eclipse.jst.jsf.common.internal.finder.acceptor,
- org.eclipse.jst.jsf.common.internal.finder.matcher,
+ org.eclipse.jst.jsf.common.internal.finder.acceptor;x-internal:=true,
+ org.eclipse.jst.jsf.common.internal.finder.matcher;x-internal:=true,
  org.eclipse.jst.jsf.common.internal.locator;x-friends:="org.eclipse.jst.jsf.facelet.core,org.eclipse.jst.jsf.facelet.core.tests",
  org.eclipse.jst.jsf.common.internal.managedobject;x-internal:=true,
  org.eclipse.jst.jsf.common.internal.pde;x-internal:=true,
@@ -27,7 +27,7 @@
    org.eclipse.jst.jsf.validation.el.tests,
    org.eclipse.jst.jsf.designtime.tests,
    org.eclipse.jst.jsf.context.symbol.tests",
- org.eclipse.jst.jsf.common.internal.util,
+ org.eclipse.jst.jsf.common.internal.util;x-internal:=true,
  org.eclipse.jst.jsf.common.metadata,
  org.eclipse.jst.jsf.common.metadata.internal;x-friends:="org.eclipse.jst.jsf.metadata.tests",
  org.eclipse.jst.jsf.common.metadata.internal.impl;x-internal:=true,
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/JSFCommonPlugin.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/JSFCommonPlugin.java
index 83e0407..e9492ef 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/JSFCommonPlugin.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/JSFCommonPlugin.java
@@ -112,10 +112,23 @@
      * @param e
      * @param msg
      */
-    public static void log(final Exception e, final String msg) {
-        final ILog log = getPlugin().getLog();
-
-        log.log(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.OK, msg, e));
+    public static void log(final Throwable e, final String msg) {
+        Implementation plugin2 = getPlugin();
+        if (plugin2 != null)
+        {
+            final ILog log = getPlugin().getLog();
+            if (log != null)
+            {
+                log.log(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.OK, msg, e));
+                return;
+            }
+        }
+        // if plugin not active, dump to stderr
+        System.err.print(msg+": "); //$NON-NLS-1$
+        if (e != null)
+        {
+            e.printStackTrace(System.err);
+        }
     }
 
     /**
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/finder/acceptor/ClasspathEntryJarMatchingAcceptor.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/finder/acceptor/ClasspathEntryJarMatchingAcceptor.java
new file mode 100644
index 0000000..855e4c7
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/finder/acceptor/ClasspathEntryJarMatchingAcceptor.java
@@ -0,0 +1,91 @@
+package org.eclipse.jst.jsf.common.internal.finder.acceptor;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.jdt.core.IPackageFragmentRoot;
+import org.eclipse.jst.jsf.common.internal.finder.VisitorMatcher.MatchingAcceptor;
+import org.eclipse.jst.jsf.common.internal.resource.ClasspathJarFile;
+
+/**
+ * Accepts all the jars underlying a classpath entry.
+ * 
+ * @author cbateman
+ * 
+ */
+public class ClasspathEntryJarMatchingAcceptor extends
+        MatchingAcceptor<IPackageFragmentRoot, ClasspathJarFile>
+{
+    private final IProject project;
+
+    /**
+     * @param project
+     */
+    public ClasspathEntryJarMatchingAcceptor(final IProject project)
+    {
+        super();
+        this.project = project;
+    }
+
+    @Override
+    protected Collection<? extends ClasspathJarFile> getInputChildren(
+            final IPackageFragmentRoot inputType)
+    {
+        final List<ClasspathJarFile> jarFiles = new ArrayList<ClasspathJarFile>();
+        if (inputType.isArchive())
+        {
+            jarFiles.add(new ClasspathJarFile(project, inputType.getPath()));
+        }
+        // if (inputType.exists())
+        // {
+        // List<ClasspathJarFile> jarFiles = new ArrayList<ClasspathJarFile>();
+        // switch (inputType.getEntryKind())
+        // {
+        // // this entry describes a source root in its project
+        // case IClasspathEntry.CPE_SOURCE:
+        // break;
+        // // - this entry describes a folder or JAR containing
+        // // binaries
+        // case IClasspathEntry.CPE_LIBRARY:
+        // {
+        // jarFiles.add(new ClasspathJarFile(project, inputType));
+        // }
+        // break;
+        // // - this entry describes another project
+        // case IClasspathEntry.CPE_PROJECT:
+        // // {
+        // // final IPath pathToProject = entry.getPath();
+        // // IWorkspace wkspace = ResourcesPlugin.getWorkspace();
+        // // IResource res =
+        // // wkspace.getRoot().findMember(pathToProject);
+        // // if (res instanceof IProject)
+        // // {
+        // // tagLibsFound.addAll();
+        // // }
+        // // }
+        // break;
+        // // - this entry describes a project or library indirectly
+        // // via a
+        // // classpath variable in the first segment of the path *
+        // case IClasspathEntry.CPE_VARIABLE:
+        // break;
+        // // - this entry describes set of entries referenced
+        // // indirectly
+        // // via a classpath container
+        // case IClasspathEntry.CPE_CONTAINER:
+        // break;
+        // }
+        // }
+        return jarFiles;
+    }
+
+    @Override
+    protected Collection<? extends ClasspathJarFile> getVisitableChildren(
+            final ClasspathJarFile visitType)
+    {
+        return Collections.EMPTY_LIST;
+    }
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/finder/acceptor/JarMatchingAcceptor.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/finder/acceptor/JarMatchingAcceptor.java
index 198cc5f..7742d75 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/finder/acceptor/JarMatchingAcceptor.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/finder/acceptor/JarMatchingAcceptor.java
@@ -1,146 +1,78 @@
 package org.eclipse.jst.jsf.common.internal.finder.acceptor;
 
-import java.io.File;
-import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
-import java.util.jar.JarFile;
 
 import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jdt.core.IClasspathEntry;
 import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.core.IPackageFragmentRoot;
 import org.eclipse.jdt.core.JavaModelException;
 import org.eclipse.jst.jsf.common.JSFCommonPlugin;
+import org.eclipse.jst.jsf.common.internal.finder.AbstractMatcher.AlwaysMatcher;
+import org.eclipse.jst.jsf.common.internal.finder.VisitorMatcher;
 import org.eclipse.jst.jsf.common.internal.finder.VisitorMatcher.MatchingAcceptor;
+import org.eclipse.jst.jsf.common.internal.resource.ClasspathJarFile;
+import org.eclipse.jst.jsf.common.internal.resource.JavaCoreMediator;
 
 /**
  * A matching acceptor that provides the jars referenced by a project.
  * 
  * @author cbateman
- *
+ * 
  */
-public class JarMatchingAcceptor extends MatchingAcceptor<IProject, JarFile>
+public class JarMatchingAcceptor extends
+        MatchingAcceptor<IProject, ClasspathJarFile>
 {
-    @Override
-    protected Collection<JarFile> getInputChildren(final IProject project)
-    {
-        final IJavaProject javaProject = JavaCore.create(project);
+    private final JavaCoreMediator _javaCoreMediator;
 
-        IClasspathEntry[] entries = null;
+    /**
+     * @param javaCoreMediator
+     */
+    public JarMatchingAcceptor(final JavaCoreMediator javaCoreMediator)
+    {
+        _javaCoreMediator = javaCoreMediator;
+    }
+
+    @Override
+    protected Collection<ClasspathJarFile> getInputChildren(
+            final IProject project)
+    {
+        final IJavaProject javaProject = _javaCoreMediator.create(project);
+        IPackageFragmentRoot[] roots = null;
         try
         {
-            entries = javaProject.getResolvedClasspath(true);
+            roots = javaProject.getPackageFragmentRoots();
         } catch (final JavaModelException e1)
         {
             JSFCommonPlugin.log(e1);
         }
-
-        if (entries == null || entries.length == 0)
+        if (roots == null || roots.length == 0)
         {
             return Collections.EMPTY_LIST;
         }
-        final List<JarFile> jars = new ArrayList<JarFile>();
-        for (final IClasspathEntry entry : entries)
+        final List<ClasspathJarFile> jars = new ArrayList<ClasspathJarFile>();
+        VisitorMatcher<IPackageFragmentRoot, ClasspathJarFile, String> entryMatcher = new VisitorMatcher<IPackageFragmentRoot, ClasspathJarFile, String>(
+                "", "", new ClasspathEntryJarMatchingAcceptor(project), //$NON-NLS-1$ //$NON-NLS-2$
+                Collections.singletonList(new AlwaysMatcher()));
+        for (final IPackageFragmentRoot root : roots)
         {
-
-            switch (entry.getEntryKind())
+            try
             {
-            // this entry describes a source root in its project
-            case IClasspathEntry.CPE_SOURCE:
-
-                break;
-            // - this entry describes a folder or JAR containing
-            // binaries
-            case IClasspathEntry.CPE_LIBRARY:
+                jars.addAll(entryMatcher.perform(root));
+            } catch (Exception e)
             {
-                JarFile jarFileFromCPE;
-                try
-                {
-                    jarFileFromCPE = getJarFileFromCPE(entry);
-                    if (jarFileFromCPE != null)
-                    {
-                        jars.add(jarFileFromCPE);
-                    }
-                } catch (final IOException e)
-                {
-                    JSFCommonPlugin.log(e);
-                }
-            }
-                break;
-            // - this entry describes another project
-            case IClasspathEntry.CPE_PROJECT:
-                // {
-                // final IPath pathToProject = entry.getPath();
-                // IWorkspace wkspace = ResourcesPlugin.getWorkspace();
-                // IResource res =
-                // wkspace.getRoot().findMember(pathToProject);
-                // if (res instanceof IProject)
-                // {
-                // tagLibsFound.addAll();
-                // }
-                // }
-                break;
-            // - this entry describes a project or library indirectly
-            // via a
-            // classpath variable in the first segment of the path *
-            case IClasspathEntry.CPE_VARIABLE:
-                break;
-            // - this entry describes set of entries referenced
-            // indirectly
-            // via a classpath container
-            case IClasspathEntry.CPE_CONTAINER:
-                break;
+                JSFCommonPlugin.log(e);
             }
         }
         return jars;
     }
 
     @Override
-    protected Collection<JarFile> getVisitableChildren(final JarFile visitType)
+    protected Collection<ClasspathJarFile> getVisitableChildren(
+            final ClasspathJarFile visitType)
     {
         return Collections.EMPTY_LIST;
     }
-    
-    /**
-     * TODO: Merge into JSFAppConfigUtils.
-     * 
-     * @param entry
-     * @return
-     */
-    private JarFile getJarFileFromCPE(final IClasspathEntry entry)
-            throws IOException
-    {
-        if (entry.getEntryKind() == IClasspathEntry.CPE_LIBRARY)
-        {
-            IPath libraryPath = entry.getPath();
-            if (libraryPath.getFileExtension() != null
-                    && libraryPath.getFileExtension().length() > 0)
-            {
-                final IWorkspaceRoot workspaceRoot = ResourcesPlugin
-                        .getWorkspace().getRoot();
-                if (libraryPath.getDevice() == null
-                        && workspaceRoot.getProject(libraryPath.segment(0))
-                                .exists())
-                {
-                    libraryPath = workspaceRoot.getFile(libraryPath)
-                            .getLocation();
-                }
-                final String libraryPathString = libraryPath.toString();
-                final File file = new File(libraryPathString);
-                if (file.exists())
-                {
-                    return new JarFile(file);
-                }
-            }
-        }
-        return null;
-    }
-
-
 }
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/locator/AbstractLocator.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/locator/AbstractLocator.java
index 4c654e2..409c744 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/locator/AbstractLocator.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/locator/AbstractLocator.java
@@ -27,6 +27,8 @@
     private final String _displayName;
     private boolean _isStarted;
 
+    private Exception _startTrace;
+
     /**
      * Available for sub-classes that want to use reasonable defaults and only provide
      * mandatory data.
@@ -105,14 +107,23 @@
 
     public void start(final CONTEXTTYPE initialContext)
     {
+        if (isStarted())
+        {
+            throw new IllegalStateException("Locator was already started", _startTrace); //$NON-NLS-1$
+        }
+
         // set the started flag
         setStarted(true);
+        _startTrace = new Exception("Locator was started on this trace"); //$NON-NLS-1$
     }
 
     public void stop()
     {
         // set the started flag
+        // clear all listeners
+        _listeners.clear();
         setStarted(false);
+        _startTrace = null;
     }
 
     /**
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/pde/AbstractRegistryReader.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/pde/AbstractRegistryReader.java
index 1773efb..64677fe 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/pde/AbstractRegistryReader.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/pde/AbstractRegistryReader.java
@@ -4,6 +4,10 @@
 import java.util.List;
 import java.util.concurrent.atomic.AtomicBoolean;
 
+import org.eclipse.core.runtime.ISafeRunnable;
+import org.eclipse.core.runtime.SafeRunner;
+import org.eclipse.jst.jsf.common.JSFCommonPlugin;
+
 /**
  * A utility base class that simplifies the reading and caching of extension
  * point information.
@@ -39,7 +43,19 @@
         {
             if (_isInitialized.compareAndSet(false, true))
             {
-                initialize();
+                SafeRunner.run(new ISafeRunnable()
+                {
+                    public void run() throws Exception
+                    {
+                        initialize();
+                    }
+                    
+                    public void handleException(Throwable exception)
+                    {
+                    	// This is expected during testing if there running as JUnit test (non-plugin)
+                        JSFCommonPlugin.log(exception, "Loading extension point"); //$NON-NLS-1$
+                    }
+                });
             }
             return _extensions;
         }
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/pde/AbstractSimpleClassExtensionRegistryReader.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/pde/AbstractSimpleClassExtensionRegistryReader.java
index d65643b..288d1d2 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/pde/AbstractSimpleClassExtensionRegistryReader.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/pde/AbstractSimpleClassExtensionRegistryReader.java
@@ -58,6 +58,10 @@
         final List<SortableExecutableExtension<T>> result = new ArrayList<SortableExecutableExtension<T>>();
         final IExtensionPoint extensionPoint = Platform.getExtensionRegistry()
                 .getExtensionPoint(getExtPtNamespace(), getExtPtId());
+        if (extensionPoint == null)
+        {
+            return;
+        }
         IExtension[] extensions = extensionPoint.getExtensions();
         for (int i = 0; i < extensions.length; i++)
         {
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/AbstractJarLocator.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/AbstractJarLocator.java
new file mode 100644
index 0000000..ba1a51e
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/AbstractJarLocator.java
@@ -0,0 +1,67 @@
+package org.eclipse.jst.jsf.common.internal.resource;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.concurrent.CopyOnWriteArrayList;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.jst.jsf.common.internal.locator.AbstractLocator;
+import org.eclipse.jst.jsf.common.internal.locator.ILocatorChangeListener;
+
+/**
+ * An abstract implementation of the JarLocator.
+ * 
+ * @author cbateman
+ * 
+ */
+public abstract class AbstractJarLocator extends
+        AbstractLocator<Collection<? extends ClasspathJarFile>, IProject, String>
+        implements IJarLocator
+{
+    /**
+     * @param id
+     * @param displayName
+     */
+    public AbstractJarLocator(final String id, final String displayName)
+    {
+        super(id, displayName, Collections.EMPTY_LIST,
+                new CopyOnWriteArrayList<ILocatorChangeListener>());
+    }
+
+    private final CopyOnWriteArrayList<JarChangeListener> _listeners = new CopyOnWriteArrayList<JarChangeListener>();
+
+    public final Collection<? extends ClasspathJarFile> getJars(final IProject project)
+    {
+        return locate(project);
+    }
+
+    @Override
+    protected abstract Collection<? extends ClasspathJarFile> doLocate(IProject context);
+
+    public void addListener(final JarChangeListener listener)
+    {
+        _listeners.addIfAbsent(listener);
+    }
+
+    public void removeListener(final JarChangeListener listener)
+    {
+        _listeners.remove(listener);
+    }
+
+    /**
+     * @param event
+     */
+    protected void fireChangeEvent(final JarChangeEvent event)
+    {
+        for (final JarChangeListener listener : _listeners)
+        {
+            listener.changed(event);
+        }
+    }
+
+    public void dispose()
+    {
+        _listeners.clear();
+    }
+
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/AbstractLifecycleListener.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/AbstractLifecycleListener.java
new file mode 100644
index 0000000..3bafecd
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/AbstractLifecycleListener.java
@@ -0,0 +1,221 @@
+package org.eclipse.jst.jsf.common.internal.resource;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.EventObject;
+import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.jst.jsf.common.JSFCommonPlugin;
+
+/**
+ * 
+ * @author cbateman
+ * @param <EVENTTYPE> 
+ * @param <LISTENERTYPE>
+ * @param <LIFECYCLEOBJECT>
+ * 
+ */
+public abstract class AbstractLifecycleListener<EVENTTYPE extends EventObject, LISTENERTYPE extends ILifecycleListener<EVENTTYPE>, LIFECYCLEOBJECT>
+        extends ImmutableLifecycleListener<LISTENERTYPE>
+{
+    /**
+     * Exception (non-localized) error message thrown when a null object is
+     * added.
+     */
+    protected static final String CANNOT_ADD_NULL_RESOURCE = "Cannot add null object"; //$NON-NLS-1$
+    static final boolean TRACE_EVENTS;
+    static
+    {
+        TRACE_EVENTS = Boolean.valueOf(
+                Platform.getDebugOption(JSFCommonPlugin.PLUGIN_ID
+                        + "/debug/lifecyclelistener")).booleanValue() //$NON-NLS-1$
+                || Boolean.valueOf(System.getProperty("org.eclipse.jst.jsf.common/debug/lifecyclelistener")).booleanValue(); //$NON-NLS-1$
+    }
+
+    private final CopyOnWriteArrayList<LISTENERTYPE> _listeners = new CopyOnWriteArrayList<LISTENERTYPE>();
+    private final CopyOnWriteArrayList<LIFECYCLEOBJECT> _lifecycleObjects = new CopyOnWriteArrayList<LIFECYCLEOBJECT>();
+    private final AtomicBoolean _isDisposed = new AtomicBoolean(false);
+
+    /**
+     * Adds listener to the list of objects registered to receive lifecycle
+     * events for this resource. Only adds the listener if it is not already in
+     * the list.
+     * 
+     * Method is thread-safe and may block the caller
+     * 
+     * Throws {@link IllegalStateException} if isDisposed() == true Throws
+     * {@link NullPointerException} if listener == null
+     * 
+     * @param listener
+     */
+    @Override
+    public void addListener(final LISTENERTYPE listener)
+    {
+        if (isDisposed())
+        {
+            throw new IllegalStateException();
+        }
+        if (listener == null)
+        {
+            throw new NullPointerException("Cannot pass null listener"); //$NON-NLS-1$
+        }
+        _listeners.addIfAbsent(listener);
+    }
+
+    /**
+     * Removes listener from the list of registered listeners
+     * 
+     * Method is thread-safe and may block the caller
+     * 
+     * Throws {@link IllegalStateException} if isDisposed() == true
+     * 
+     * @param listener
+     */
+    @Override
+    public void removeListener(final LISTENERTYPE listener)
+    {
+        if (isDisposed())
+        {
+            throw new IllegalStateException();
+        }
+        _listeners.remove(listener);
+    }
+
+    /**
+     * @param event
+     */
+    protected void fireLifecycleEvent(final EVENTTYPE event)
+    {
+        boolean disposeAfter = false;
+        if (TRACE_EVENTS)
+        {
+            System.err.println(event);
+        }
+        // NOTE: must use iterator through _listeners so that
+        // CopyOnWriteArrayList protects us from concurrent modification
+        for (final LISTENERTYPE listener : _listeners)
+        {
+            final EventResult result = listener.acceptEvent(event);
+            disposeAfter |= result.getDisposeAfterEvent();
+        }
+        if (disposeAfter)
+        {
+            dispose();
+        }
+    }
+
+    /**
+     * @return true if the listener has been disposed
+     */
+    public boolean isDisposed()
+    {
+        return _isDisposed.get();
+    }
+
+    /**
+     * Release the resource change listener
+     */
+    public final void dispose()
+    {
+        if (_isDisposed.compareAndSet(false, true))
+        {
+            // ensure that add/removeResource don't cause races to add or
+            // remove the resource listener
+            synchronized (_lifecycleObjects)
+            {
+                // remove first to minimize the chance that the listener will
+                // be triggered during the remainder of dispose
+                removeSystemChangeListener();
+                _lifecycleObjects.clear();
+                doDispose();
+            }
+        }
+    }
+
+    /**
+     * Sub-class disposal specialization.
+     */
+    protected void doDispose()
+    {
+        // do nothing by default;  sub-classes should override to provide their
+        // own disposal.
+    }
+
+    /**
+     * @param object
+     */
+    protected void addLifecycleObject(final LIFECYCLEOBJECT object)
+    {
+        if (object == null)
+        {
+            throw new NullPointerException(CANNOT_ADD_NULL_RESOURCE);
+        }
+        synchronized (_lifecycleObjects)
+        {
+            // don't add any resources if we've disposed before acquiring the
+            // lock
+            if (isDisposed())
+            {
+                return;
+            }
+            final int preSize = _lifecycleObjects.size();
+            if (!_lifecycleObjects.contains(object))
+            {
+                _lifecycleObjects.add(object);
+            }
+            // if the size of the array was 0
+            // and is now greater, make sure the listener is added
+            if (preSize == 0 && _lifecycleObjects.size() > 0)
+            {
+                addSystemChangeListener();
+            }
+        }
+    }
+
+    /**
+     * If there are no longer resources being targeted, the resource change
+     * listener will be removed.
+     * 
+     * @param res
+     */
+    public void removeResource(final IResource res)
+    {
+        synchronized (_lifecycleObjects)
+        {
+            // don't bother with this stuff if we're disposed.
+            if (isDisposed())
+            {
+                return;
+            }
+            _lifecycleObjects.remove(res);
+            // if there are no longer target resources,
+            // remove the workspace listener
+            if (_lifecycleObjects.size() == 0)
+            {
+                removeSystemChangeListener();
+            }
+        }
+    }
+
+    /**
+     * @return an iterable of the lifecycle objects being tracked.
+     */
+    protected Collection<LIFECYCLEOBJECT> getLifecycleObjects()
+    {
+        return Collections.unmodifiableCollection(_lifecycleObjects);
+    }
+
+    /**
+     * Add the system change listener that is used to collect events that will
+     * be processed into lifecycle change events.
+     */
+    protected abstract void addSystemChangeListener();
+
+    /**
+     * Remove a system change listener added using addSystemChangeListener
+     */
+    protected abstract void removeSystemChangeListener();
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/ClasspathEntryLifecycleListener.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/ClasspathEntryLifecycleListener.java
new file mode 100644
index 0000000..80e8c9a
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/ClasspathEntryLifecycleListener.java
@@ -0,0 +1,213 @@
+package org.eclipse.jst.jsf.common.internal.resource;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.IResourceDeltaVisitor;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.jdt.core.ElementChangedEvent;
+import org.eclipse.jdt.core.IElementChangedListener;
+import org.eclipse.jdt.core.IJavaElement;
+import org.eclipse.jdt.core.IJavaElementDelta;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jst.jsf.common.JSFCommonPlugin;
+import org.eclipse.jst.jsf.common.internal.resource.IClasspathLifecycleListener.ClasspathLifecycleEvent;
+
+/**
+ * @author cbateman
+ */
+public class ClasspathEntryLifecycleListener
+        extends
+        AbstractLifecycleListener<IClasspathLifecycleListener.ClasspathLifecycleEvent, IClasspathLifecycleListener, IProject>
+        implements IElementChangedListener
+{
+    private final JavaCoreMediator _mediator;
+
+    /**
+     * Initialize an inactive lifecycle listener. A classpath listener will not
+     * be installed by this constructor. The object created using this
+     * constructor will not fire any events until addClasspathEntry is called at
+     * least once to add a target resource
+     * 
+     * @param mediator
+     *            the mediator to use to access JavaCore operations
+     * @throws NullPointerException
+     *             if mediator is null.
+     */
+    public ClasspathEntryLifecycleListener(final JavaCoreMediator mediator)
+    {
+        if (mediator == null)
+        {
+            throw new NullPointerException(CANNOT_ADD_NULL_RESOURCE);
+        }
+        _mediator = mediator;
+    }
+
+    /**
+     * Create a new lifecycle listener for the res
+     * 
+     * @param entry
+     * @param mediator
+     *            the workspace to listen to for changes.
+     * @throws NullPointerException
+     *             if res or workspace is null.
+     */
+    public ClasspathEntryLifecycleListener(final IProject entry,
+            final JavaCoreMediator mediator)
+    {
+        this(mediator);
+        if (entry == null)
+        {
+            throw new NullPointerException(CANNOT_ADD_NULL_RESOURCE);
+        }
+        addLifecycleObject(entry);
+    }
+
+    public void elementChanged(final ElementChangedEvent event)
+    {
+        // we are only interested in package fragment roots that are listening
+        // for
+        if (event.getType() == ElementChangedEvent.POST_CHANGE)
+        {
+            handlePostChangeEvent(event);
+        }
+    }
+
+    private void handlePostChangeEvent(final ElementChangedEvent event)
+    {
+        final IJavaElementDelta delta = event.getDelta();
+        new DeltaAcceptor().accept(new DeltaAcceptor.DeltaVisitor()
+        {
+            public void visit(final IJavaElementDelta visitDelta)
+            {
+                // we are only interested in package_fragment_root's
+                final IJavaElement element = visitDelta.getElement();
+                // only interested if a project in our entries list owns the
+                // element.
+                final IJavaProject javaProject = element.getJavaProject();
+                if (javaProject == null
+                        || !getLifecycleObjects().contains(
+                                javaProject.getProject()))
+                {
+                    return;
+                }
+                if (element.getElementType() == IJavaElement.PACKAGE_FRAGMENT_ROOT)
+                {
+                    handlePackageFragmentRoot(visitDelta);
+                } else if (element.getElementType() == IJavaElement.JAVA_PROJECT
+                        && visitDelta.getResourceDeltas() != null)
+                {
+                    handleProject(visitDelta);
+                }
+                // need to test the flags only for package fragment roots
+            }
+
+            private void handleProject(final IJavaElementDelta visitDelta)
+            {
+                for (final IResourceDelta resDelta : visitDelta
+                        .getResourceDeltas())
+                {
+                    try
+                    {
+                        resDelta.accept(new IResourceDeltaVisitor()
+                        {
+                            public boolean visit(final IResourceDelta resDelta2)
+                                    throws CoreException
+                            {
+                                if (resDelta2.getKind() == IResourceDelta.REMOVED
+                                        && resDelta2.getResource().getType() == IResource.FILE
+                                        && "jar".equals(resDelta2.getResource().getFileExtension())) //$NON-NLS-1$
+                                {
+                                    fireLifecycleEvent(new ClasspathLifecycleEvent(
+                                            ClasspathEntryLifecycleListener.this,
+                                            visitDelta.getElement(),
+                                            ClasspathLifecycleEvent.Type.REMOVED_DELTA,
+                                            resDelta2.getResource()));
+                                }
+                                return true;
+                            }
+                        });
+                    } catch (final CoreException e)
+                    {
+                        JSFCommonPlugin.log(e);
+                    }
+                }
+            }
+
+            private void handlePackageFragmentRoot(
+                    final IJavaElementDelta visitDelta)
+            {
+                final int flags = visitDelta.getFlags();
+                switch (visitDelta.getKind())
+                {
+                    case IJavaElementDelta.ADDED:
+                    {
+                        fireLifecycleEvent(new ClasspathLifecycleEvent(
+                                ClasspathEntryLifecycleListener.this,
+                                visitDelta.getElement(),
+                                ClasspathLifecycleEvent.Type.ADDED));
+                    }
+                    break;
+                    case IJavaElementDelta.REMOVED:
+                    {
+                        fireLifecycleEvent(new ClasspathLifecycleEvent(
+                                ClasspathEntryLifecycleListener.this,
+                                visitDelta.getElement(),
+                                ClasspathLifecycleEvent.Type.REMOVED));
+                    }
+                    break;
+                    case IJavaElementDelta.CHANGED:
+                        if ((flags & IJavaElementDelta.F_ADDED_TO_CLASSPATH) != 0)
+                        {
+                            fireLifecycleEvent(new ClasspathLifecycleEvent(
+                                    ClasspathEntryLifecycleListener.this,
+                                    visitDelta.getElement(),
+                                    ClasspathLifecycleEvent.Type.ADDED));
+                        } else if ((flags & IJavaElementDelta.F_REMOVED_FROM_CLASSPATH) != 0)
+                        {
+                            fireLifecycleEvent(new ClasspathLifecycleEvent(
+                                    ClasspathEntryLifecycleListener.this,
+                                    visitDelta.getElement(),
+                                    ClasspathLifecycleEvent.Type.REMOVED));
+                        } else if ((flags & IJavaElementDelta.F_REORDER) != 0)
+                        {
+                            // TODO: how important is the case of a classpath
+                            // reordering?
+                        }
+                    break;
+                }
+            }
+        }, delta);
+    }
+
+    @Override
+    protected void addSystemChangeListener()
+    {
+        _mediator.addElementChangedListener(this);
+    }
+
+    @Override
+    protected void removeSystemChangeListener()
+    {
+        _mediator.removeElementChangeListener(this);
+    }
+
+    private static class DeltaAcceptor
+    {
+        public interface DeltaVisitor
+        {
+            public void visit(final IJavaElementDelta delta);
+        }
+
+        public void accept(final DeltaVisitor visitor,
+                final IJavaElementDelta delta)
+        {
+            visitor.visit(delta);
+            for (final IJavaElementDelta childDelta : delta
+                    .getAffectedChildren())
+            {
+                accept(visitor, childDelta);
+            }
+        }
+    }
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/ClasspathJarFile.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/ClasspathJarFile.java
new file mode 100644
index 0000000..0c4bba1
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/ClasspathJarFile.java
@@ -0,0 +1,133 @@
+package org.eclipse.jst.jsf.common.internal.resource;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.jar.JarFile;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IWorkspace;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.jst.jsf.common.JSFCommonPlugin;
+
+/**
+ * Represents a jar that is available on the classpath.  Encapsulates the jar
+ * as well as information about where it is provided from.
+ * 
+ * The jar itself may have been deleted in which case, exists() will return false.
+ * 
+ * @author cbateman
+ *
+ */
+public class ClasspathJarFile
+{
+    private final IProject _project;
+    private final IPath _iPath;
+
+    /**
+     * @param project
+     * @param iPath 
+     */
+    public ClasspathJarFile(final IProject project, final IPath iPath)
+    {
+        _project = project;
+        _iPath = iPath;
+    }
+
+    /**
+     * @return the project that this jar file is being referenced from.   Note that this
+     * is not necessarily the same as the project that owns it (if it is in the
+     * workspace) and a jar file may be referenced by more than one project.
+     */
+    public IProject getProject()
+    {
+        return _project;
+    }
+
+    /**
+     * @return the class path entry
+     */
+    public IPath getPath()
+    {
+        return _iPath;
+    }
+    
+    /**
+     * @return a new JarFile for the underlying jar.  Caller MUST close the jar when
+     * done.
+     */
+    public JarFile getJarFile()
+    {
+        JarFile jarFileFromCPE = null;
+        try
+        {
+            jarFileFromCPE = getJarFileFromCPE(_iPath, _project.getWorkspace());
+        } catch (final IOException e)
+        {
+            JSFCommonPlugin.log(e);
+        }
+        return jarFileFromCPE;
+    }
+    
+    /**
+     * TODO: Merge into JSFAppConfigUtils.
+     * 
+     * @param entry
+     * @param workspace 
+     * @return
+     */
+    private JarFile getJarFileFromCPE(final IPath entry, final IWorkspace workspace)
+            throws IOException
+    {
+        IPath path = _iPath;
+        if (path.getFileExtension() != null
+                && path.getFileExtension().length() > 0)
+        {
+            final IWorkspaceRoot workspaceRoot = workspace.getRoot();
+            if (path.getDevice() == null
+                    && workspaceRoot.getProject(path.segment(0))
+                            .exists())
+            {
+                path = workspaceRoot.getFile(path)
+                        .getLocation();
+            }
+            final String libraryPathString = path.toString();
+            final File file = new File(libraryPathString);
+            if (file.exists())
+            {
+                return new JarFile(file);
+            }
+        }
+        return null;
+    }
+
+    @Override
+    public boolean equals(Object obj)
+    {
+        if (obj == this)
+        {
+            return true;
+        }
+        
+        if (! (obj instanceof ClasspathJarFile))
+        {
+            return false;
+        }
+        
+        ClasspathJarFile other = (ClasspathJarFile) obj;
+        return _project.equals(other._project) && _iPath.equals(other._iPath);
+    }
+
+    @Override
+    public int hashCode()
+    {
+        return _project.hashCode() ^ _iPath.hashCode();
+    }
+
+    @Override
+    public String toString()
+    {
+        return String.format("ClasspathJarFile for project=%s, entry=%s", _project, _iPath); //$NON-NLS-1$
+    }
+
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/DefaultJarLocator.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/DefaultJarLocator.java
new file mode 100644
index 0000000..4f31cc1
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/DefaultJarLocator.java
@@ -0,0 +1,172 @@
+package org.eclipse.jst.jsf.common.internal.resource;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.jdt.core.IJavaElement;
+import org.eclipse.jdt.core.IPackageFragmentRoot;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jst.jsf.common.JSFCommonPlugin;
+import org.eclipse.jst.jsf.common.internal.finder.AbstractMatcher.AlwaysMatcher;
+import org.eclipse.jst.jsf.common.internal.finder.AbstractMatcher.IMatcher;
+import org.eclipse.jst.jsf.common.internal.finder.VisitorMatcher;
+import org.eclipse.jst.jsf.common.internal.finder.acceptor.ClasspathEntryJarMatchingAcceptor;
+import org.eclipse.jst.jsf.common.internal.finder.acceptor.JarMatchingAcceptor;
+import org.eclipse.jst.jsf.common.internal.resource.IClasspathLifecycleListener.ClasspathLifecycleEvent;
+import org.eclipse.jst.jsf.common.internal.resource.IJarLocator.JarChangeEvent.Type;
+
+/**
+ * A default jar provider that traverses a project and returns all found jars on
+ * the classpath that a list of matcher criteria.
+ * 
+ * @author cbateman
+ * 
+ */
+public class DefaultJarLocator extends AbstractJarLocator
+{
+    private static final String DISPLAY_NAME = "Default Jar Provider"; //$NON-NLS-1$
+    private static final String ID = DefaultJarLocator.class.getCanonicalName();
+    private final VisitorMatcher<IProject, ClasspathJarFile, String> _matcher;
+    private ClasspathEntryLifecycleListener _classpathEntryListener;
+    private final JavaCoreMediator _javaCoreMediator;
+
+    /**
+     * @param javaCoreMediator
+     */
+    public DefaultJarLocator(final JavaCoreMediator javaCoreMediator)
+    {
+        this(Collections.singletonList(new AlwaysMatcher()), javaCoreMediator);
+    }
+
+    /**
+     * @param matchers
+     * @param javaCoreMediator
+     */
+    public DefaultJarLocator(final List<? extends IMatcher> matchers,
+            final JavaCoreMediator javaCoreMediator)
+    {
+        super(ID, DISPLAY_NAME);
+        _matcher = new VisitorMatcher<IProject, ClasspathJarFile, String>(ID,
+                DISPLAY_NAME, new JarMatchingAcceptor(javaCoreMediator),
+                matchers);
+        _javaCoreMediator = javaCoreMediator;
+        _classpathEntryListener = new ClasspathEntryLifecycleListener(
+                _javaCoreMediator);
+    }
+
+    @Override
+    public void start(final IProject project)
+    {
+        _classpathEntryListener.addLifecycleObject(project);
+        _classpathEntryListener.addListener(new IClasspathLifecycleListener()
+        {
+            public EventResult acceptEvent(final ClasspathLifecycleEvent event)
+            {
+                final IJavaElement affectedElement = event.getAffectedElement();
+                final List<ClasspathJarFile>  affectedJarFiles = new ArrayList<ClasspathJarFile>();
+                if (isInteresting(project, affectedElement, event))
+                {
+                    Type jarEventType = null;
+                    switch (event.getType())
+                    {
+                        case ADDED:
+                            jarEventType = Type.JAR_ADDED;
+                            affectedJarFiles.addAll(getChangedJars((IPackageFragmentRoot) affectedElement));
+                        break;
+                        case REMOVED:
+                            jarEventType = Type.JAR_REMOVED;
+                            affectedJarFiles.addAll(getChangedJars((IPackageFragmentRoot) affectedElement));
+                        break;
+                        case REMOVED_DELTA:
+                            jarEventType = Type.JAR_REMOVED;
+                            IResource res = event.getAffectedResource();
+                            if (res.getType() == IResource.FILE &&
+                                    "jar".equals(res.getFileExtension())) //$NON-NLS-1$
+                            {
+                                IPath path = res.getLocation();
+                                if (path != null)
+                                {
+                                    affectedJarFiles.add(new ClasspathJarFile(project, path));
+                                }
+                            }
+                        break;
+                    }
+
+                    if (jarEventType != null && !affectedJarFiles.isEmpty())
+                    {
+                        for (final ClasspathJarFile changedJar : affectedJarFiles)
+                        {
+                            fireChangeEvent(new JarChangeEvent(
+                                    DefaultJarLocator.this, jarEventType,
+                                    changedJar));
+                        }
+                    }
+                }
+                return EventResult.getDefaultEventResult();
+            }
+
+            private Collection<? extends ClasspathJarFile> getChangedJars(
+                    final IPackageFragmentRoot affectedElement)
+            {
+                try
+                {
+                    return new VisitorMatcher<IPackageFragmentRoot, ClasspathJarFile, String>(
+                            "", "", new ClasspathEntryJarMatchingAcceptor(project), //$NON-NLS-1$ //$NON-NLS-2$
+                            Collections.singletonList(new AlwaysMatcher()))
+                            .find(affectedElement);
+                } catch (final JavaModelException e)
+                {
+                    return Collections.EMPTY_LIST;
+                } catch (final Exception e)
+                {
+                    return Collections.EMPTY_LIST;
+                }
+            }
+        });
+        super.start(project);
+    }
+
+    private boolean isInteresting(final IProject project,
+            final IJavaElement affectedElement, final ClasspathLifecycleEvent event)
+    {
+        return 
+            // first filter out events that aren't related to the project we care about.
+            (affectedElement != null
+                && affectedElement.getJavaProject() != null
+                && project
+                        .equals(affectedElement.getJavaProject().getProject()))
+                // then filter down to only events impacting frag roots
+                // or jar file deletions
+                && (affectedElement.getElementType() == IJavaElement.PACKAGE_FRAGMENT_ROOT
+                        || (affectedElement.getElementType() == IJavaElement.JAVA_PROJECT
+                                    && event.getAffectedResource() != null
+                                    && event.getType() == ClasspathLifecycleEvent.Type.REMOVED_DELTA));
+    }
+
+    @Override
+    public void stop()
+    {
+        _classpathEntryListener.dispose();
+        super.stop();
+    }
+
+    @Override
+    protected Collection<? extends ClasspathJarFile> doLocate(
+            final IProject project)
+    {
+        try
+        {
+            return _matcher.find(project);
+        } catch (final Exception e)
+        {
+            JSFCommonPlugin
+                    .log(e, "While getting jars for project: " + project); //$NON-NLS-1$
+            return getNoResult();
+        }
+    }
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/DefaultJarProvider.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/DefaultJarProvider.java
deleted file mode 100644
index b7ed2e8..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/DefaultJarProvider.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package org.eclipse.jst.jsf.common.internal.resource;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.jar.JarFile;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.jst.jsf.common.JSFCommonPlugin;
-import org.eclipse.jst.jsf.common.internal.finder.AbstractMatcher.IMatcher;
-import org.eclipse.jst.jsf.common.internal.finder.VisitorMatcher;
-import org.eclipse.jst.jsf.common.internal.finder.acceptor.JarMatchingAcceptor;
-
-/**
- * A default jar provider that traverses a project and returns all found jars on the classpath
- * that a list of matcher criteria.
- * 
- * @author cbateman
- *
- */
-public class DefaultJarProvider implements IJarProvider
-{
-    private VisitorMatcher<IProject, JarFile, String> _matcher;
-
-    /**
-     * @param matchers
-     */
-    public DefaultJarProvider(final List<? extends IMatcher> matchers)
-    {
-        _matcher = new VisitorMatcher<IProject, JarFile, String>("", "", new JarMatchingAcceptor(), matchers); //$NON-NLS-1$ //$NON-NLS-2$
-    }
-
-    public Collection<? extends JarFile> getJars(final IProject project)
-    {
-        try
-        {
-            return _matcher.find(project);
-        } catch (final Exception e)
-        {
-            JSFCommonPlugin.log(e, 
-                    "While getting jars for project: " + project); //$NON-NLS-1$
-            return Collections.EMPTY_LIST;
-        }
-    }
-}
\ No newline at end of file
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/EventResult.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/EventResult.java
new file mode 100644
index 0000000..68aae95
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/EventResult.java
@@ -0,0 +1,84 @@
+package org.eclipse.jst.jsf.common.internal.resource;
+
+/**
+ * @author cbateman
+ *
+ */
+public class EventResult
+{
+    private static EventResult DEFAULT;
+
+    /**
+     * @return an event result with defaults initialized
+     */
+    public synchronized static EventResult getDefaultEventResult()
+    {
+        if (DEFAULT == null)
+        {
+            DEFAULT = new EventResult()
+            {
+                @Override
+                protected void setDisposeAfterEvent(final boolean disposeAfterEvent)
+                {
+                    throw new UnsupportedOperationException();
+                }
+            };
+        }
+        return DEFAULT;
+    }
+
+    private static EventResult DISPOSE_AFTER_EVENT;
+
+    /**
+     * @return an event result with default except dispose after
+     * is set
+     */
+    public synchronized static EventResult getDisposeAfterEventResult()
+    {
+        if (DISPOSE_AFTER_EVENT == null)
+        {
+            DISPOSE_AFTER_EVENT = new EventResult()
+            {
+                /**
+                 * @return the remove listener flag
+                 */
+                @Override
+                public boolean getDisposeAfterEvent()
+                {
+                    return true;
+                }
+
+                /**
+                 * @param disposeAfterEvent
+                 */
+                @Override
+                protected void setDisposeAfterEvent(final boolean disposeAfterEvent) {
+                    _disposeAfterEvent = disposeAfterEvent;
+                }
+
+            };
+        }
+        return DISPOSE_AFTER_EVENT;
+    }
+
+    /**
+     * set to true if after the current event is finished firing, the source
+     * should be disposed. If self-disposal is not applicable, the flag is ignored
+     */
+    protected boolean _disposeAfterEvent;
+
+    /**
+     * @return the remove listener flag
+     */
+    public boolean getDisposeAfterEvent()
+    {
+        return _disposeAfterEvent;
+    }
+
+    /**
+     * @param disposeAfterEvent
+     */
+    protected void setDisposeAfterEvent(final boolean disposeAfterEvent) {
+        _disposeAfterEvent = disposeAfterEvent;
+    }
+}
\ No newline at end of file
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/IClasspathLifecycleListener.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/IClasspathLifecycleListener.java
new file mode 100644
index 0000000..e2fcfcc
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/IClasspathLifecycleListener.java
@@ -0,0 +1,162 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2008 Oracle 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:
+ *     Oracle Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.jsf.common.internal.resource;
+
+import java.util.EventObject;
+
+import org.eclipse.core.resources.IResource;
+import org.eclipse.jdt.core.IJavaElement;
+import org.eclipse.jst.jsf.common.internal.resource.IClasspathLifecycleListener.ClasspathLifecycleEvent;
+
+/**
+ * Listener can register for events ona particular LifecycleListener
+ * 
+ * @author cbateman
+ * 
+ */
+public interface IClasspathLifecycleListener extends
+        ILifecycleListener<ClasspathLifecycleEvent>
+{
+    /**
+     * Listener accepts the classpath lifecycle event
+     * 
+     * @param event
+     */
+    EventResult acceptEvent(ClasspathLifecycleEvent event);
+
+    /**
+     * An event indicating a change on the classpath
+     * 
+     */
+    public static class ClasspathLifecycleEvent extends EventObject
+    {
+        /**
+         * Indicates the type of change.
+         * 
+         */
+        public enum Type
+        {
+            /**
+             * The affected element was added to the classpath
+             */
+            ADDED,
+            /**
+             * The affected element was removed from the classpath
+             */
+            REMOVED,
+            /**
+             * A classpath object has been deleted from the workspace. The
+             * affected element is the owning IJavaProject. The actual deleted
+             * object can be obtained by query getAffectedResource. Note that
+             * this is a post change event, so the underlying resources most
+             * likely don't exist any more.
+             * 
+             */
+            REMOVED_DELTA
+        }
+
+        private final IJavaElement _affectedElement;
+        private final IResource _affectedResource;
+        private final Type _type;
+
+        /**
+         * @param source
+         * @param affectedElement
+         * @param type
+         */
+        public ClasspathLifecycleEvent(
+                final ClasspathEntryLifecycleListener source,
+                final IJavaElement affectedElement, final Type type)
+        {
+            this(source, affectedElement, type, null);
+        }
+
+        /**
+         * @param source
+         * @param affectedElement
+         * @param type
+         * @param affectedResource
+         * @throws IllegalArgumentException
+         *             if affectedResource is non-null but type doesn't match
+         *             one that has affectedResources (see
+         *             isAffectResourceEvent)
+         */
+        public ClasspathLifecycleEvent(
+                final ClasspathEntryLifecycleListener source,
+                final IJavaElement affectedElement, final Type type,
+                final IResource affectedResource)
+        {
+            super(source);
+            _affectedElement = affectedElement;
+            _type = type;
+            _affectedResource = affectedResource;
+            if (affectedResource != null && !isAffectResourceEvent(type))
+            {
+                throw new IllegalArgumentException();
+            }
+        }
+
+        @Override
+        public ClasspathEntryLifecycleListener getSource()
+        {
+            return (ClasspathEntryLifecycleListener) super.getSource();
+        }
+
+        /**
+         * @return the type of event.
+         */
+        public Type getType()
+        {
+            return _type;
+        }
+
+        /**
+         * @return the affected resource or null if none.
+         */
+        public IResource getAffectedResource()
+        {
+            return _affectedResource;
+        }
+
+        /**
+         * 
+         */
+        private static final long serialVersionUID = -2510218872082581659L;
+
+        /**
+         * @return the element that changed.
+         */
+        public IJavaElement getAffectedElement()
+        {
+            return _affectedElement;
+        }
+
+        /**
+         * @param type
+         * @return true if the type instance matches one for which
+         *         affectedResource's are valid in the change event.
+         */
+        public boolean isAffectResourceEvent(final Type type)
+        {
+            return type == Type.REMOVED_DELTA;
+        }
+
+        @Override
+        public String toString()
+        {
+            return String.format(
+                    "ClasspathLifecycleEvent: IJavaElement=%s, Res = %s, Event=%s", //$NON-NLS-1$
+                    getAffectedElement(), getAffectedResource(), getType());
+        }
+        
+        
+    }
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/IJarLocator.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/IJarLocator.java
new file mode 100644
index 0000000..34629f9
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/IJarLocator.java
@@ -0,0 +1,116 @@
+package org.eclipse.jst.jsf.common.internal.resource;
+
+import java.util.Collection;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.jst.jsf.common.internal.locator.ILocator;
+import org.eclipse.jst.jsf.common.internal.locator.ILocatorChangeListener;
+import org.eclipse.jst.jsf.common.internal.locator.ILocatorChangeListener.LocatorChangeEvent;
+
+/**
+ * Provider of jars for use by the locator. Exists to abstract the locator from
+ * JDT for test purposes.
+ * 
+ */
+public interface IJarLocator extends
+        ILocator<Collection<? extends ClasspathJarFile>, IProject, String>
+{
+    /**
+     * @param project
+     * @return a list of valid jar files.
+     */
+    Collection<? extends ClasspathJarFile> getJars(final IProject project);
+
+    /**
+     * @param listener
+     */
+    void addListener(final JarChangeListener listener);
+
+    /**
+     * @param listener
+     */
+    void removeListener(final JarChangeListener listener);
+
+    /**
+     * Disposes the provider.
+     */
+    void dispose();
+
+    /**
+     * Implemented by classes that want receive events signalling a change on
+     * the classpath.
+     * 
+     */
+    public abstract class JarChangeListener implements ILocatorChangeListener
+    {
+        /**
+         * @param event
+         */
+        public abstract void changed(JarChangeEvent event);
+
+        public final void changed(final LocatorChangeEvent event)
+        {
+            changed((JarChangeEvent) event);
+        }
+    }
+
+    /**
+     * Indicates a change on the class path.
+     * 
+     */
+    public class JarChangeEvent extends LocatorChangeEvent
+    {
+        /**
+         * Indicates the type of event
+         * 
+         */
+        public enum Type
+        {
+            /**
+             * Indicates a jar has been added.
+             */
+            JAR_ADDED,
+            /**
+             * Indicates a jar has been removed.
+             */
+            JAR_REMOVED;
+        }
+
+        private final Type _type;
+        private final ClasspathJarFile _jar;
+
+        /**
+         * @param source
+         * @param type 
+         * @param jar 
+         */
+        public JarChangeEvent(final ILocator source, final Type type,
+                final ClasspathJarFile jar)
+        {
+            super(source);
+            _type = type;
+            _jar = jar;
+        }
+
+        /**
+         * @return the type of the event
+         */
+        public Type getType()
+        {
+            return _type;
+        }
+
+        /**
+         * @return the affected jar.
+         */
+        public ClasspathJarFile getJar()
+        {
+            return _jar;
+        }
+
+        /**
+         * 
+         */
+        private static final long serialVersionUID = 8163703453414731319L;
+    }
+}
\ No newline at end of file
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/IJarProvider.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/IJarProvider.java
deleted file mode 100644
index 352c327..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/IJarProvider.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package org.eclipse.jst.jsf.common.internal.resource;
-
-import java.util.Collection;
-import java.util.jar.JarFile;
-
-import org.eclipse.core.resources.IProject;
-
-/**
- * Provider of jars for use by the locator. Exists to abstract the locator
- * from JDT for test purposes.
- * 
- */
-public interface IJarProvider
-{
-    /**
-     * @param project
-     * @return a list of valid jar files.
-     */
-    Collection<? extends JarFile> getJars(final IProject project);
-}
\ No newline at end of file
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/ILifecycleListener.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/ILifecycleListener.java
new file mode 100644
index 0000000..93acba8
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/ILifecycleListener.java
@@ -0,0 +1,19 @@
+package org.eclipse.jst.jsf.common.internal.resource;
+
+import java.util.EventObject;
+
+/**
+ * @author cbateman
+ *
+ * @param <EVENTTYPE>
+ */
+public interface ILifecycleListener<EVENTTYPE extends EventObject>
+{
+    /**
+     * Listener accepts the resource lifecycle event
+     * 
+     * @param event
+     * @return the result of accepting the event
+     */
+    EventResult acceptEvent(EVENTTYPE event);
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/IResourceLifecycleListener.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/IResourceLifecycleListener.java
index 70e0e95..2306d59 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/IResourceLifecycleListener.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/IResourceLifecycleListener.java
@@ -10,102 +10,20 @@
  *******************************************************************************/
 package org.eclipse.jst.jsf.common.internal.resource;
 
+
 /**
  * Listener can register for events ona particular LifecycleListener
  * 
  * @author cbateman
  *
  */
-public interface IResourceLifecycleListener
+public interface IResourceLifecycleListener extends ILifecycleListener<ResourceLifecycleEvent>
 {
     /**
-     * Listener accepts the resource lifecycle event
+     * Listener accepts the classpath lifecycle event
      * 
      * @param event
-     * @return the result of accepting the event
      */
     EventResult acceptEvent(ResourceLifecycleEvent event);
-
-    /**
-     * @author cbateman
-     *
-     */
-    public static class EventResult
-    {
-        private static EventResult DEFAULT;
-
-        /**
-         * @return an event result with defaults initialized
-         */
-        public synchronized static EventResult getDefaultEventResult()
-        {
-            if (DEFAULT == null)
-            {
-                DEFAULT = new EventResult()
-                {
-                    @Override
-                    protected void setDisposeAfterEvent(final boolean disposeAfterEvent)
-                    {
-                        throw new UnsupportedOperationException();
-                    }
-                };
-            }
-            return DEFAULT;
-        }
-
-        private static EventResult DISPOSE_AFTER_EVENT;
-
-        /**
-         * @return an event result with default except dispose after
-         * is set
-         */
-        public synchronized static EventResult getDisposeAfterEventResult()
-        {
-            if (DISPOSE_AFTER_EVENT == null)
-            {
-                DISPOSE_AFTER_EVENT = new EventResult()
-                {
-                    /**
-                     * @return the remove listener flag
-                     */
-                    @Override
-                    public boolean getDisposeAfterEvent()
-                    {
-                        return true;
-                    }
-
-                    /**
-                     * @param disposeAfterEvent
-                     */
-                    @Override
-                    protected void setDisposeAfterEvent(final boolean disposeAfterEvent) {
-                        _disposeAfterEvent = disposeAfterEvent;
-                    }
-
-                };
-            }
-            return DISPOSE_AFTER_EVENT;
-        }
-
-        /**
-         * set to true if after the current event is finished firing, the source
-         * should be disposed. If self-disposal is not applicable, the flag is ignored
-         */
-        protected boolean _disposeAfterEvent;
-
-        /**
-         * @return the remove listener flag
-         */
-        public boolean getDisposeAfterEvent()
-        {
-            return _disposeAfterEvent;
-        }
-
-        /**
-         * @param disposeAfterEvent
-         */
-        protected void setDisposeAfterEvent(final boolean disposeAfterEvent) {
-            _disposeAfterEvent = disposeAfterEvent;
-        }
-    }
+    
 }
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/ImmutableLifecycleListener.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/ImmutableLifecycleListener.java
index 8614083..f544216 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/ImmutableLifecycleListener.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/ImmutableLifecycleListener.java
@@ -16,9 +16,10 @@
  * Clients may only register and deregister for events.
  *
  * @author cbateman
+ * @param <LISTENERTYPE> 
  *
  */
-public abstract class ImmutableLifecycleListener
+public abstract class ImmutableLifecycleListener<LISTENERTYPE extends ILifecycleListener>
 {
 
     /**
@@ -32,7 +33,7 @@
      * 
      * @param listener
      */
-    public abstract void addListener(final IResourceLifecycleListener listener);
+    public abstract void addListener(final LISTENERTYPE listener);
 
     /**
      * Removes listener from the list of registered listeners
@@ -43,5 +44,5 @@
      *
      * @param listener
      */
-    public abstract void removeListener(final IResourceLifecycleListener listener);
+    public abstract void removeListener(final LISTENERTYPE listener);
 }
\ No newline at end of file
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/JavaCoreMediator.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/JavaCoreMediator.java
new file mode 100644
index 0000000..7f84c3f
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/JavaCoreMediator.java
@@ -0,0 +1,42 @@
+package org.eclipse.jst.jsf.common.internal.resource;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.jdt.core.IElementChangedListener;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.JavaCore;
+
+/**
+ * Implements pass-through methods to the static JavaCore class. This allows us
+ * to decouple from JavaCore for testing and other dep-injection purposes.
+ * 
+ * @author cbateman
+ * 
+ */
+public class JavaCoreMediator
+{
+    /**
+     * @param project
+     * @return a java project for project. Return null if project is null.
+     */
+    public IJavaProject create(final IProject project)
+    {
+        return JavaCore.create(project);
+    }
+
+    /**
+     * @param listener
+     */
+    public void addElementChangedListener(final IElementChangedListener listener)
+    {
+        JavaCore.addElementChangedListener(listener);
+    }
+
+    /**
+     * @param listener
+     */
+    public void removeElementChangeListener(
+            final ClasspathEntryLifecycleListener listener)
+    {
+        JavaCore.removeElementChangedListener(listener);
+    }
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/LifecycleListener.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/LifecycleListener.java
index b883eff..3aee0de 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/LifecycleListener.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/LifecycleListener.java
@@ -11,8 +11,6 @@
 package org.eclipse.jst.jsf.common.internal.resource;
 
 import java.util.List;
-import java.util.concurrent.CopyOnWriteArrayList;
-import java.util.concurrent.atomic.AtomicBoolean;
 
 import org.eclipse.core.resources.IContainer;
 import org.eclipse.core.resources.IProject;
@@ -23,7 +21,6 @@
 import org.eclipse.core.resources.IWorkspace;
 import org.eclipse.jst.jsf.common.internal.ITestTracker;
 import org.eclipse.jst.jsf.common.internal.ITestTracker.Event;
-import org.eclipse.jst.jsf.common.internal.resource.IResourceLifecycleListener.EventResult;
 import org.eclipse.jst.jsf.common.internal.resource.ResourceLifecycleEvent.EventType;
 import org.eclipse.jst.jsf.common.internal.resource.ResourceLifecycleEvent.ReasonType;
 
@@ -33,24 +30,20 @@
  * @author cbateman
  * 
  */
-public class LifecycleListener extends ImmutableLifecycleListener implements
-        IResourceChangeListener
+public class LifecycleListener extends
+        AbstractLifecycleListener<ResourceLifecycleEvent, IResourceLifecycleListener, IResource>
+        implements IResourceChangeListener
 {
     private static boolean ENABLE_TEST_TRACKING = false;
     private static long _seqId;
-
-    private final CopyOnWriteArrayList<IResource> _resources;
-    final CopyOnWriteArrayList<IResourceLifecycleListener> _listeners;
-    private final AtomicBoolean _isDisposed = new AtomicBoolean(false);
     private ITestTracker _testTracker; // ==
-    private final IWorkspace _workspace;
+    final IWorkspace _workspace;
 
     // null;
     // initialized
     // by
     // setter
     // injection
-
     /**
      * Initialize an inactive lifecycle listener. A workspace listener will not
      * be installed by this constructor. The object created using this
@@ -59,11 +52,16 @@
      * 
      * @param workspace
      *            the workspace to listen to for changes.
+     * @throws NullPointerException
+     *             if workspace is null.
      */
     public LifecycleListener(final IWorkspace workspace)
     {
-        _resources = new CopyOnWriteArrayList<IResource>();
-        _listeners = new CopyOnWriteArrayList<IResourceLifecycleListener>();
+        super();
+        if (workspace == null)
+        {
+            throw new NullPointerException(CANNOT_ADD_NULL_RESOURCE);
+        }
         _workspace = workspace;
     }
 
@@ -73,25 +71,52 @@
      * @param res
      * @param workspace
      *            the workspace to listen to for changes.
+     * @throws NullPointerException
+     *             if res or workspace is null.
      */
     public LifecycleListener(final IResource res, final IWorkspace workspace)
     {
         this(workspace);
-        _resources.add(res);
-        workspace.addResourceChangeListener(this);
+        if (res == null)
+        {
+            throw new NullPointerException(CANNOT_ADD_NULL_RESOURCE);
+        }
+        addResource(res);
     }
 
     /**
      * @param resources
      * @param workspace
      *            the workspace to listen to for changes.
+     * @throws NullPointerException
+     *             if resources, a member of resources or workspace is null.
      */
     public LifecycleListener(final List<IResource> resources,
             final IWorkspace workspace)
     {
         this(workspace);
-        _resources.addAll(resources);
-        workspace.addResourceChangeListener(this);
+        for (final IResource resource : resources)
+        {
+            if (resource != null)
+            {
+                addResource(resource);
+            } else
+            {
+                throw new NullPointerException(CANNOT_ADD_NULL_RESOURCE);
+            }
+        }
+    }
+
+    @Override
+    protected void addSystemChangeListener()
+    {
+        _workspace.addResourceChangeListener(this);
+    }
+
+    @Override
+    protected void removeSystemChangeListener()
+    {
+        _workspace.removeResourceChangeListener(this);
     }
 
     /**
@@ -111,172 +136,54 @@
     }
 
     /**
-     * Adds listener to the list of objects registered to receive lifecycle
-     * events for this resource. Only adds the listener if it is not already in
-     * the list.
-     * 
-     * Method is thread-safe and may block the caller
-     * 
-     * Throws {@link IllegalStateException} if isDisposed() == true
-     * 
-     * @param listener
-     */
-    @Override
-    public void addListener(final IResourceLifecycleListener listener)
-    {
-        if (isDisposed())
-        {
-            throw new IllegalStateException();
-        }
-        _listeners.addIfAbsent(listener);
-    }
-
-    /**
-     * Removes listener from the list of registered listeners
-     * 
-     * Method is thread-safe and may block the caller
-     * 
-     * Throws {@link IllegalStateException} if isDisposed() == true
-     * 
-     * @param listener
-     */
-    @Override
-    public void removeListener(final IResourceLifecycleListener listener)
-    {
-        if (isDisposed())
-        {
-            throw new IllegalStateException();
-        }
-        _listeners.remove(listener);
-    }
-
-    /**
      * @param res
+     *            a resource you want to receive events for. MUST NOT BE NULL.
+     * @throw {@link NullPointerException} if res is null
      */
     public void addResource(final IResource res)
     {
-        synchronized (_resources)
-        {
-            // don't add any resources if we've disposed before acquiring the
-            // lock
-            if (isDisposed())
-            {
-                return;
-            }
-
-            final int preSize = _resources.size();
-            if (!_resources.contains(res))
-            {
-                _resources.add(res);
-            }
-
-            // if the size of the array was 0
-            // and is now greater, make sure the listener is added
-            if (preSize == 0 && _resources.size() > 0)
-            {
-                _workspace.addResourceChangeListener(this);
-            }
-        }
-    }
-
-    /**
-     * If there are no longer resources being targeted, the resource change
-     * listener will be removed.
-     * 
-     * @param res
-     */
-    public void removeResource(final IResource res)
-    {
-        synchronized (_resources)
-        {
-            // don't bother with this stuff if we're disposed.
-            if (isDisposed())
-            {
-                return;
-            }
-            _resources.remove(res);
-
-            // if there are no longer target resources,
-            // remove the workspace listener
-            if (_resources.size() == 0)
-            {
-                _workspace.removeResourceChangeListener(this);
-            }
-        }
-    }
-
-    /**
-     * Release the resource change listener
-     */
-    public void dispose()
-    {
-        if (_isDisposed.compareAndSet(false, true))
-        {
-            // ensure that add/removeResource don't cause races to add or
-            // remove the resource listener
-            synchronized (_resources)
-            {
-                // remove first to minimize the chance that the listener will
-                // be triggered during the remainder of dispose
-                _workspace.removeResourceChangeListener(this);
-                _resources.clear();
-            }
-        }
-    }
-
-    /**
-     * @return true if the listener has been disposed
-     */
-    public boolean isDisposed()
-    {
-        return _isDisposed.get();
+        addLifecycleObject(res);
     }
 
     public void resourceChanged(final IResourceChangeEvent event)
     {
         final long seqId = _seqId++;
-
         if (_testTracker != null && ENABLE_TEST_TRACKING)
         {
             _testTracker.fireEvent(Event.START_TRACKING, seqId,
                     "trackMethod_resourceChanged"); //$NON-NLS-1$
         }
-
         assert (!isDisposed());
-
         switch (event.getType())
         {
             case IResourceChangeEvent.PRE_CLOSE:
             {
                 final IProject proj = (IProject) event.getResource();
-
                 // must use iterator to ensure copy on write behaviour
-                for (final IResource res : _resources)
+                for (final IResource res : getLifecycleObjects())
                 {
                     if (proj == res || proj == res.getProject())
                     {
-                        fireLifecycleEvent(new ResourceLifecycleEvent(res,
-                                EventType.RESOURCE_INACCESSIBLE,
+                        fireLifecycleEvent(new ResourceLifecycleEvent(this,
+                                res, EventType.RESOURCE_INACCESSIBLE,
                                 ReasonType.RESOURCE_PROJECT_CLOSED));
                     }
                 }
             }
             break;
-
             case IResourceChangeEvent.PRE_DELETE:
             {
                 final IProject proj = (IProject) event.getResource();
-
                 // must use iterator to ensure copy on write behaviour
-                for (final IResource res : _resources)
+                for (final IResource res : getLifecycleObjects())
                 {
                     // if the resource being tracked is the resource being
                     // deleted,
                     // then fire a resource delete event
                     if (proj == res)
                     {
-                        fireLifecycleEvent(new ResourceLifecycleEvent(res,
-                                EventType.RESOURCE_INACCESSIBLE,
+                        fireLifecycleEvent(new ResourceLifecycleEvent(this,
+                                res, EventType.RESOURCE_INACCESSIBLE,
                                 ReasonType.RESOURCE_DELETED));
                     }
                     // if the resource being tracked is a resource in the
@@ -284,20 +191,18 @@
                     // deleted, then fire a project deleted event
                     else if (proj == res.getProject())
                     {
-                        fireLifecycleEvent(new ResourceLifecycleEvent(res,
-                                EventType.RESOURCE_INACCESSIBLE,
+                        fireLifecycleEvent(new ResourceLifecycleEvent(this,
+                                res, EventType.RESOURCE_INACCESSIBLE,
                                 ReasonType.RESOURCE_PROJECT_DELETED));
                     }
                 }
             }
             break;
-
             case IResourceChangeEvent.POST_CHANGE:
             {
-                for (final IResource res : _resources)
+                for (final IResource res : getLifecycleObjects())
                 {
                     IResourceDelta delta = event.getDelta();
-
                     // only care about post change events to resources
                     // that we are tracking
                     if (delta != null)
@@ -311,12 +216,10 @@
                 }
             }
             break;
-
             default:
                 // do nothing
                 // we only handle these three
         }
-
         if (ENABLE_TEST_TRACKING && _testTracker != null)
         {
             _testTracker.fireEvent(Event.STOP_TRACKING, seqId,
@@ -324,30 +227,10 @@
         }
     }
 
-    private void fireLifecycleEvent(final ResourceLifecycleEvent event)
-    {
-        boolean disposeAfter = false;
-
-        // NOTE: must use iterator through _listeners so that
-        // CopyOnWriteArrayList protects us from concurrent modification
-        for (final IResourceLifecycleListener listener : _listeners)
-        {
-            final EventResult result = listener.acceptEvent(event);
-            disposeAfter |= result.getDisposeAfterEvent();
-        }
-
-        if (disposeAfter)
-        {
-            dispose();
-        }
-    }
-
     private void visit(final IResourceDelta delta)
     {
         assert (!isDisposed());
-
         final IResource res = delta.getResource();
-
         // the wkspace root is a special case since even though
         // it is registered as the target resource, we are interested
         // in new projects created in the root
@@ -356,21 +239,22 @@
             handleWorkspaceRoot(delta);
         } else if (res instanceof IContainer)
         {
-            handleContainer(delta);
+            handleContainer(delta, res);
         } else
         {
             handleFile(delta, res);
         }
     }
 
-    private void handleContainer(final IResourceDelta delta)
+    private void handleContainer(final IResourceDelta delta, IResource container)
     {
+        handleChange(delta, container, container);
         for (final IResourceDelta childDelta : delta.getAffectedChildren())
         {
             if (childDelta.getResource().getType() == IResource.FILE
                     || childDelta.getResource().getType() == IResource.FOLDER)
             {
-                handleChange(childDelta, childDelta.getResource());
+                handleChange(childDelta, childDelta.getResource(), container);
             }
         }
     }
@@ -382,7 +266,7 @@
             case IResourceDelta.ADDED:
             case IResourceDelta.REMOVED:
             {
-                handleChange(delta, res);
+                handleChange(delta, res, res);
             }
             break;
             case IResourceDelta.CHANGED:
@@ -390,7 +274,7 @@
                 // the contents of the file have changed
                 if ((delta.getFlags() & IResourceDelta.CONTENT) != 0)
                 {
-                    fireLifecycleEvent(new ResourceLifecycleEvent(res,
+                    fireLifecycleEvent(new ResourceLifecycleEvent(this, res,
                             EventType.RESOURCE_CHANGED,
                             ReasonType.RESOURCE_CHANGED_CONTENTS));
                 }
@@ -399,53 +283,97 @@
         }
     }
 
-    private void handleChange(final IResourceDelta delta, final IResource res)
+    private void handleChange(final IResourceDelta delta, final IResource res,
+            final IResource interestedResource)
     {
         switch (delta.getKind())
         {
             case IResourceDelta.ADDED:
             {
-                if ((delta.getFlags() & IResourceDelta.MOVED_FROM) != 0)
-                {
-                    fireLifecycleEvent(new ResourceLifecycleEvent(res,
-                            EventType.RESOURCE_ADDED, ReasonType.RESOURCE_MOVED));
-                } else
-                {
-                    fireLifecycleEvent(new ResourceLifecycleEvent(res,
-                            EventType.RESOURCE_ADDED, ReasonType.RESOURCE_ADDED));
-                }
+                handleAdd(delta, res, interestedResource);
             }
             break;
-
             case IResourceDelta.REMOVED:
             {
-                if ((delta.getFlags() & IResourceDelta.MOVED_TO) != 0)
-                {
-                    fireLifecycleEvent(new ResourceLifecycleEvent(res,
-                            EventType.RESOURCE_INACCESSIBLE,
-                            ReasonType.RESOURCE_MOVED));
-                } else
-                {
-                    fireLifecycleEvent(new ResourceLifecycleEvent(res,
-                            EventType.RESOURCE_INACCESSIBLE,
-                            ReasonType.RESOURCE_DELETED));
-                }
+                handleRemove(delta, res, interestedResource);
             }
             break;
         }
     }
 
+    private void handleRemove(final IResourceDelta delta, final IResource res,
+            final IResource interestedResource)
+    {
+        if ((delta.getFlags() & IResourceDelta.MOVED_TO) != 0)
+        {
+            if (res.equals(interestedResource))
+            {
+                fireLifecycleEvent(new ResourceLifecycleEvent(this, res,
+                        EventType.RESOURCE_INACCESSIBLE,
+                        ReasonType.RESOURCE_MOVED));
+            } else if (res.getParent().equals(interestedResource))
+            {
+                fireLifecycleEvent(new ResourceLifecycleEvent(this, res,
+                        EventType.RESOURCE_INACCESSIBLE,
+                        ReasonType.RESOURCE_MOVED_CONTAINER));
+            }
+        } else
+        {
+            if (res.equals(interestedResource))
+            {
+                fireLifecycleEvent(new ResourceLifecycleEvent(this, res,
+                        EventType.RESOURCE_INACCESSIBLE,
+                        ReasonType.RESOURCE_DELETED));
+            } else if (res.getParent().equals(interestedResource))
+            {
+                fireLifecycleEvent(new ResourceLifecycleEvent(this, res,
+                        EventType.RESOURCE_INACCESSIBLE,
+                        ReasonType.RESOURCE_DELETED_FROM_CONTAINER));
+            }
+        }
+    }
+
+    private void handleAdd(final IResourceDelta delta, final IResource res,
+            final IResource interestedResource)
+    {
+        if ((delta.getFlags() & IResourceDelta.MOVED_FROM) != 0)
+        {
+            if (res.equals(interestedResource))
+            {
+                fireLifecycleEvent(new ResourceLifecycleEvent(this, res,
+                        EventType.RESOURCE_ADDED, ReasonType.RESOURCE_MOVED));
+            } else if (res.getParent().equals(interestedResource))
+            {
+                fireLifecycleEvent(new ResourceLifecycleEvent(this, res,
+                        EventType.RESOURCE_ADDED,
+                        ReasonType.RESOURCE_MOVED_CONTAINER));
+            }
+        } else
+        {
+            if (res.equals(interestedResource))
+            {
+                fireLifecycleEvent(new ResourceLifecycleEvent(this, res,
+                        EventType.RESOURCE_ADDED, ReasonType.RESOURCE_ADDED));
+            } else if (res.getParent().equals(interestedResource))
+            {
+                fireLifecycleEvent(new ResourceLifecycleEvent(this, res,
+                        EventType.RESOURCE_ADDED,
+                        ReasonType.RESOURCE_ADDED_TO_CONTAINER));
+            }
+        }
+    }
+
     private void handleWorkspaceRoot(final IResourceDelta delta)
     {
         for (final IResourceDelta childDelta : delta
-                .getAffectedChildren(IResourceDelta.ADDED))
+                .getAffectedChildren(IResourceDelta.ADDED|IResourceDelta.CHANGED))
         {
             final IResource res = childDelta.getResource();
             if ((childDelta.getFlags() & IResourceDelta.OPEN) != 0 &&
             // project was just opened
                     res.getType() == IResource.PROJECT)
             {
-                fireLifecycleEvent(new ResourceLifecycleEvent(res,
+                fireLifecycleEvent(new ResourceLifecycleEvent(this, res,
                         EventType.RESOURCE_ADDED, ReasonType.PROJECT_OPENED));
             }
         }
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/ResourceLifecycleEvent.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/ResourceLifecycleEvent.java
index 6b469a0..15ac306 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/ResourceLifecycleEvent.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/ResourceLifecycleEvent.java
@@ -10,94 +10,124 @@
  *******************************************************************************/
 package org.eclipse.jst.jsf.common.internal.resource;
 
+import java.util.EventObject;
+
 import org.eclipse.core.resources.IResource;
 
 /**
  * @author cbateman
- *
+ * 
  */
-public class ResourceLifecycleEvent 
+public class ResourceLifecycleEvent extends EventObject
 {
     /**
-     * the type of lifecycle event
-     * this enum is not closed and may add new fields in the future
+     * 
+     */
+    private static final long serialVersionUID = -8692801944833729L;
+
+    /**
+     * the type of lifecycle event this enum is not closed and may add new
+     * fields in the future
      */
     public enum EventType
     {
         /**
          * Indicates that the resource is no longer accessible (as testable with
-         * IResource.isAccessible).  The reasonType will indicate why.
+         * IResource.isAccessible). The reasonType will indicate why.
          */
         RESOURCE_INACCESSIBLE,
-        
+
         /**
-         * Indicates that the resource being tracked has changed in some
-         * way, use ReasonType to determine specifics
+         * Indicates that the resource being tracked has changed in some way,
+         * use ReasonType to determine specifics
          */
         RESOURCE_CHANGED,
-        
+
         /**
-         * Indicates that the resource being tracked hass been added.  Use
+         * Indicates that the resource being tracked hass been added. Use
          * ReasonType to determine specifics.
          */
         RESOURCE_ADDED;
     }
-    
+
     /**
-     * encodes the cause of the event if the event type provides one
-     * this enum is not closed and may add new fields in the future
+     * encodes the cause of the event if the event type provides one this enum
+     * is not closed and may add new fields in the future
      */
     public enum ReasonType
     {
         /**
-         * The resource was deleted from the workspace,
-         * this event is pre change if the event is project
-         * and post change otherwise
+         * The resource was deleted from the workspace, this event is pre change
+         * if the event is project and post change otherwise
          */
         RESOURCE_DELETED,
         /**
-         * The resource's project was deleted.  This event is 
-         * pre-change.  Note that if the tracked resource is 
-         * a project, RESOURCE_DELETED will be fired, not this
-         * event.
+         * The resource was delete from it's container. This fired when the
+         * PARENT of the resource being deleted is registered for lifecycle
+         * events (i.e. _affectedResource.getParent() == registeredResource)
+         */
+        RESOURCE_DELETED_FROM_CONTAINER,
+        /**
+         * The resource's project was deleted. This event is pre-change. Note
+         * that if the tracked resource is a project, RESOURCE_DELETED will be
+         * fired, not this event.
          */
         RESOURCE_PROJECT_DELETED,
         /**
-         * The resource's project was closed.  This event is pre-change
+         * The resource's project was closed. This event is pre-change
          */
         RESOURCE_PROJECT_CLOSED,
         /**
-         * Occurs when the contents of a non-project resource has changed 
+         * Occurs when the contents of a non-project resource has changed
          */
         RESOURCE_CHANGED_CONTENTS,
-        
         /**
          * Occurs when a project resource is added
          */
         PROJECT_OPENED,
         /**
-         * Occurs when a non-project resource is added.
+         * Occurs when a non-project resource is added to a container. This is
+         * fired if the resource being added was in the list of resources
+         * registered for lifecycle events (i.e. _affectedResource ==
+         * registeredResource).
          */
         RESOURCE_ADDED,
         /**
-         * Occurs when a resource was has been moved.  This results
-         * in a remove and add for the moved resource, plus a similar
-         * pair for all its children if it is a container.
+         * Occurs when a non-project resource is added to a container. This is
+         * fired if the PARENT of the resource being added was in the resources
+         * registered for lifecycle events (i.e. _affectedResource.getParent() =
+         * registeredResource)
          */
-        RESOURCE_MOVED
+        RESOURCE_ADDED_TO_CONTAINER,
+        /**
+         * Occurs when a resource has becomes added or inaccessible due to a
+         * move operation. This event is fired when the resource being moved is
+         * the one of interest.
+         */
+        RESOURCE_MOVED,
+        /**
+         * Occurs when a resource has becomes added or inaccessible due to a
+         * move operation. This event is fired when the PARENT of resource being
+         * moved is the one of interest.
+         */
+        RESOURCE_MOVED_CONTAINER
     }
 
-    private final IResource   _affectedResource;
-    private final EventType   _eventType;
-    private final ReasonType  _reasonType;
-    
+    private final IResource _affectedResource;
+    private final EventType _eventType;
+    private final ReasonType _reasonType;
+
     /**
+     * @param source 
      * @param affectedResource
      * @param eventType
      * @param reasonType
      */
-    public ResourceLifecycleEvent(IResource affectedResource, EventType eventType, ReasonType reasonType)
+    public ResourceLifecycleEvent(final LifecycleListener source,
+            final IResource affectedResource,
+            final EventType eventType, final ReasonType reasonType)
     {
+        super(source);
         _affectedResource = affectedResource;
         _eventType = eventType;
         _reasonType = reasonType;
@@ -106,21 +136,32 @@
     /**
      * @return the affected resource
      */
-    public IResource getAffectedResource() {
+    public IResource getAffectedResource()
+    {
         return _affectedResource;
     }
 
     /**
      * @return the event that has occurred
      */
-    public EventType getEventType() {
+    public EventType getEventType()
+    {
         return _eventType;
     }
 
     /**
      * @return the cause of the event
      */
-    public ReasonType getReasonType() {
+    public ReasonType getReasonType()
+    {
         return _reasonType;
     }
+
+    @Override
+    public String toString()
+    {
+        return String.format(
+                "ResourceLifecycleEvent: Res = %s, Event=%s, Reason=%s", //$NON-NLS-1$
+                getAffectedResource(), getEventType(), getReasonType());
+    }
 }
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/ResourceSingletonObjectManager.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/ResourceSingletonObjectManager.java
index f129dd4..d2b98f4 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/ResourceSingletonObjectManager.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/ResourceSingletonObjectManager.java
@@ -18,6 +18,7 @@
 
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.IWorkspace;
+import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.jst.jsf.common.internal.managedobject.IManagedObject;
 import org.eclipse.jst.jsf.common.internal.managedobject.ObjectManager;
 import org.eclipse.jst.jsf.common.internal.resource.ResourceLifecycleEvent.EventType;
@@ -75,25 +76,34 @@
     throws ManagedObjectException
     {
         assertNotDisposed();
-        synchronized(this)
+        IAdaptable stateObject = null;
+        try
         {
-            runBeforeGetInstance(key);
-            ManagedResourceObject managedResObject = _perResourceObjects.get(key);
-    
-            if (managedResObject == null)
+            stateObject = unsafeRunBeforeGetInstance(key);
+            synchronized(this)
             {
-                final MANAGEDOBJECT managedObject = createNewInstance(key);
-    
-                if (managedObject == null)
+                runBeforeGetInstance(key);
+                ManagedResourceObject managedResObject = _perResourceObjects.get(key);
+        
+                if (managedResObject == null)
                 {
-                    throw new ManagedObjectException(
-                            "No object available for resource"); //$NON-NLS-1$
+                    final MANAGEDOBJECT managedObject = createNewInstance(key);
+        
+                    if (managedObject == null)
+                    {
+                        throw new ManagedObjectException(
+                                "No object available for resource"); //$NON-NLS-1$
+                    }
+                    managedResObject = manageResource(key, managedObject);
                 }
-                managedResObject = manageResource(key, managedObject);
+    
+                runAfterGetInstance(key);
+                return (MANAGEDOBJECT) managedResObject.getManagedObject();
             }
-
-            runAfterGetInstance(key);
-            return (MANAGEDOBJECT) managedResObject.getManagedObject();
+        }
+        finally
+        {
+            unsafeRunAfterGetInstance(key, stateObject);
         }
     }
 
@@ -120,6 +130,27 @@
     {
         // do nothing by default
     }
+    
+    /**
+     * Callback run outside of synchronized code block in getInstance
+     * @param resource
+     * @return A state object to be passed to unsafeRunAfterGetInstance, or null.
+     */
+    protected IAdaptable unsafeRunBeforeGetInstance(final RESOURCE resource)
+    {
+        // do nothing by default
+        return null;
+    }
+
+    /**
+     * Callback run outside of synchronized code block in getInstance
+     * @param resource
+     * @param adaptable State object returned from unsafeRunBeforeGetInstance call, may be null.
+     */
+    protected void unsafeRunAfterGetInstance(final RESOURCE resource, final IAdaptable adaptable)
+    {
+        // do nothing by default
+    }
 
     /**
      * @param resource
@@ -328,7 +359,7 @@
                         _managedObject.dispose();
                     }
                 }
-                // dispose is external code out our control, so make sure
+                // dispose/destroy is external code out our control, so make sure
                 // unmanage gets called if it blows up.
                 finally
                 {
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/ResourceTracker.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/ResourceTracker.java
index cc9e78a..8f431dd 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/ResourceTracker.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/resource/ResourceTracker.java
@@ -11,11 +11,11 @@
  * A managed object that tracks changes to a resource.
  * 
  * @author cbateman
- * @param <RESTYPE> 
+ * @param <RESTYPE>
  * 
  */
-public abstract class ResourceTracker<RESTYPE extends IResource> extends AbstractManagedObject implements
-        IResourceLifecycleListener
+public abstract class ResourceTracker<RESTYPE extends IResource> extends
+        AbstractManagedObject implements IResourceLifecycleListener
 {
     private final RESTYPE _resource;
     private final AtomicLong _lastModifiedStamp = new AtomicLong();
@@ -58,17 +58,17 @@
         final ReasonType reasonType = event.getReasonType();
         switch (eventType)
         {
-        case RESOURCE_ADDED:
-            // added resources kick an add event.
-            fireResourceAdded(event.getAffectedResource(), reasonType);
+            case RESOURCE_ADDED:
+                // added resources kick an add event.
+                fireResourceAdded(event.getAffectedResource(), reasonType);
             break;
-        case RESOURCE_CHANGED:
-            // changed resources kick a change event
-            fireResourceChanged(reasonType);
+            case RESOURCE_CHANGED:
+                // changed resources kick a change event
+                fireResourceChanged(event.getAffectedResource(), reasonType);
             break;
-        case RESOURCE_INACCESSIBLE:
-            // removed resources kick a remove event
-            fireResourceInAccessible(reasonType);
+            case RESOURCE_INACCESSIBLE:
+                // removed resources kick a remove event
+                fireResourceInAccessible(event.getAffectedResource(), reasonType);
             break;
         }
 
@@ -84,22 +84,29 @@
         return _resource.equals(event.getAffectedResource());
     }
 
-    
     /**
+     * @param affectedResource 
      * @param reasonType
      */
-    protected abstract void fireResourceInAccessible(ReasonType reasonType);
-
-    /**
-     * @param reasonType
-     */
-    protected abstract void fireResourceChanged(ReasonType reasonType);
+    protected abstract void fireResourceInAccessible(IResource affectedResource, ReasonType reasonType);
 
     /**
      * @param affectedResource 
      * @param reasonType
      */
-    protected abstract void fireResourceAdded(IResource affectedResource, ReasonType reasonType);
+    protected abstract void fireResourceChanged(IResource affectedResource, ReasonType reasonType);
+
+    /**
+     * Note that this may fire for both the new resource and it's parent
+     * container if both are registered by the lifecycle event. Check reasonType
+     * to ensure you getting the event you want: i.e. RESOURCE_ADDED vs.
+     * RESOURCE_ADDED_TO_CONTAINER
+     * 
+     * @param affectedResource
+     * @param reasonType
+     */
+    protected abstract void fireResourceAdded(IResource affectedResource,
+            ReasonType reasonType);
 
     @Override
     public void dispose()
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/strategy/IteratorPolicyBasedStrategyComposite.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/strategy/IteratorPolicyBasedStrategyComposite.java
index 189db81..ff59abb 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/strategy/IteratorPolicyBasedStrategyComposite.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/strategy/IteratorPolicyBasedStrategyComposite.java
@@ -13,6 +13,7 @@
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Iterator;
+import java.util.LinkedHashMap;
 import java.util.Map;
 
 import org.eclipse.jst.jsf.common.JSFCommonPlugin;
@@ -54,7 +55,7 @@
     {
         super();
         _policy = policy;
-        _strategies = new HashMap<IDTYPE, STRATEGYTYPE>();
+        _strategies = new LinkedHashMap<IDTYPE, STRATEGYTYPE>();
     }
 
     /**
@@ -65,7 +66,7 @@
     {
         super(compositionStrategy);
         _policy = policy;
-        _strategies = new HashMap<IDTYPE, STRATEGYTYPE>();
+        _strategies = new LinkedHashMap<IDTYPE, STRATEGYTYPE>();
     }
 
     /**
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/strategy/TestableResourceFactoryStrategy.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/strategy/TestableResourceFactoryStrategy.java
new file mode 100644
index 0000000..c935e01
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/strategy/TestableResourceFactoryStrategy.java
@@ -0,0 +1,43 @@
+package org.eclipse.jst.jsf.common.internal.strategy;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.QualifiedName;
+
+
+/**
+ * Copy of {@link TestableProjectFactoryStrategy} except that this can accept IResources
+ * 
+ * An abstract class that, when given a project resource and a project session key, 
+ * will provide the instance of OUTPUT to use, or,
+ * no result will be returned if the resource is not a project.
+ * <p>
+ * Users need only set the project session property with the key and OUTPUT instance
+ * @param <OUTPUT>
+ */
+public abstract class TestableResourceFactoryStrategy<OUTPUT> implements ISimpleStrategy<IResource, OUTPUT> {
+	private QualifiedName _key;
+
+	/**
+	 * @param testableFactorySessionKey - project property session key for property value holding testable instance 
+	 */
+	public TestableResourceFactoryStrategy(final QualifiedName testableFactorySessionKey) {
+		_key = testableFactorySessionKey;
+	}
+	
+	public OUTPUT perform(final IResource resource) throws Exception {
+		if (_key != null && resource != null) {
+			if (resource instanceof IProject) {
+				final Object factory = ((IProject)resource).getSessionProperties().get(_key);
+				if (factory != null)
+					return (OUTPUT)factory;
+			} 
+		}			
+		return getNoResult();
+	}
+
+	public OUTPUT getNoResult() {
+		return null;
+	}
+		
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/types/TypeComparatorPreferences.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/types/TypeComparatorPreferences.java
index 7428cb1..49f63bc 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/types/TypeComparatorPreferences.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/types/TypeComparatorPreferences.java
@@ -32,7 +32,7 @@
             case TypeComparatorDiagnosticFactory.METHOD_EXPRESSION_EXPECTED_ID:
                 return Diagnostic.ERROR;
             case TypeComparatorDiagnosticFactory.INCOMPATIBLE_TYPES_ID:
-                return Diagnostic.WARNING;
+                return Diagnostic.INFO;
             case TypeComparatorDiagnosticFactory.VALUE_EXPRESSION_EXPECTED_ID:
                 return Diagnostic.ERROR;
             case TypeComparatorDiagnosticFactory.INCOMPATIBLE_METHOD_TYPES_ID:
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/util/JarUtilities.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/util/JarUtilities.java
index 096cb81..76c609e 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/util/JarUtilities.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/internal/util/JarUtilities.java
@@ -1,6 +1,8 @@
 package org.eclipse.jst.jsf.common.internal.util;
 
+import java.io.File;
 import java.net.MalformedURLException;
+import java.net.URI;
 import java.net.URL;
 import java.util.jar.JarEntry;
 import java.util.jar.JarFile;
@@ -11,6 +13,8 @@
  */
 public class JarUtilities
 {
+    private static final String JAR_PREFIX = "jar:"; //$NON-NLS-1$
+    private static final String JAR_FILE_PREFIX = JAR_PREFIX + "file:"; //$NON-NLS-1$
     /**
      * A common instance.
      */
@@ -60,4 +64,27 @@
                 filePath, jarEntryName); 
         return new URL(urlString); 
     }
+    
+    /**
+     * @param url
+     * @return a file for the URL if url is in the local file system (must conform to jar:file:// uri).
+     * or null.
+     */
+    public File getFile(final URL url)
+    {
+        String string = url.toString();
+        if (string != null && string.startsWith(JAR_FILE_PREFIX))
+        {
+            string = string.substring(JAR_PREFIX.length());
+            try
+            {
+                return new File(URI.create(string));
+            } catch (IllegalArgumentException e)
+            {
+                // fallthorough and return null if the file can't do anything
+                // with the string.
+            }
+        }
+        return null;
+    }
 }
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/IMetaDataModelManagerFactory.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/IMetaDataModelManagerFactory.java
index 4eb8ef6..5c8fa84 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/IMetaDataModelManagerFactory.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/IMetaDataModelManagerFactory.java
@@ -11,15 +11,15 @@
 
 package org.eclipse.jst.jsf.common.metadata.internal;
 
-import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
 
 /**
  * A factory that will produce {@link IMetaDataModelManager}s
  */
 public interface IMetaDataModelManagerFactory {
 	/**
-	 * @param project
-	 * @return IMetaDataModelManager for the project
+	 * @param projectOrWorkspaceRoot
+	 * @return IMetaDataModelManager for the project, or shared IMetaDataModelManager for the workspace
 	 */
-	public IMetaDataModelManager getInstance(IProject project);
+	public IMetaDataModelManager getInstance(IResource projectOrWorkspaceRoot);
 }
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/MetaDataLocatorFactory.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/MetaDataLocatorFactory.java
index a590590..a82cad7 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/MetaDataLocatorFactory.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/MetaDataLocatorFactory.java
@@ -41,7 +41,8 @@
 	public synchronized static MetaDataLocatorFactory getInstance(){
 		if (INSTANCE == null){
 			INSTANCE = new MetaDataLocatorFactory();
-			ResourcesPlugin.getWorkspace().addResourceChangeListener(INSTANCE, IResourceChangeEvent.PRE_CLOSE);
+			ResourcesPlugin.getWorkspace().addResourceChangeListener(INSTANCE,
+			        IResourceChangeEvent.PRE_CLOSE | IResourceChangeEvent.PRE_DELETE);
 		}
 		return INSTANCE;
 	}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/MetaDataModelContext.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/MetaDataModelContext.java
index e90bd26..ba3fb68 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/MetaDataModelContext.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/MetaDataModelContext.java
@@ -44,12 +44,17 @@
 	public Object getAdapter(Class adapter) {
 		if (adapter == ModelKeyDescriptor.class)
 			return new ModelKeyDescriptor(_project, _domainId, _modelId);
+		if (adapter == IProject.class)
+			return _project;
 		return null;
 	}
 
-	public IProject getProject() {
-		return _project;
-	}
+//	/**
+//	 * @return project
+//	 */
+//	public IProject getProject() {
+//		return _project;
+//	}
 
 	public String getDomainId() {
 		return _domainId;
@@ -62,8 +67,8 @@
 	@Override
 	public String toString() {
 		final StringBuffer buf = new StringBuffer();
-		if (getProject() != null) {
-			buf.append(getProject().getName()).append(":"); //$NON-NLS-1$
+		if (_project != null) {
+			buf.append(_project.getName()).append(":"); //$NON-NLS-1$
 		}
 		buf.append(getDomainId()).append(":"); //$NON-NLS-1$
 		buf.append(getModelIdentifier()).append(":"); //$NON-NLS-1$
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/MetaDataModelManager.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/MetaDataModelManager.java
index c0e8167..64a4009 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/MetaDataModelManager.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/MetaDataModelManager.java
@@ -14,10 +14,14 @@
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
+import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.locks.Lock;
+import java.util.concurrent.locks.ReentrantLock;
 
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.jst.jsf.common.JSFCommonPlugin;
 import org.eclipse.jst.jsf.common.metadata.Model;
 
@@ -33,7 +37,7 @@
 	private static IMetaDataModelManager SHARED_INSTANCE;
 	
 	// used to lock all instance calls for getModel
-	private static final Object  GLOBAL_INSTANCE_LOCK = new Object();
+	private static final Lock  GLOBAL_INSTANCE_LOCK = new ReentrantLock();
 	private final ModelMap models; 
 	
 	
@@ -56,8 +60,28 @@
 	}
 
     public Model getModel(
-            final IMetaDataModelContext modelContext) {
-        synchronized (GLOBAL_INSTANCE_LOCK) {
+            final IMetaDataModelContext modelContext) 
+    {
+        boolean gotLock = false;
+        try
+        {
+            final int maxTries = 6;
+            int numTries = 0;
+            final Job currentJob = Job.getJobManager().currentJob();
+            while (numTries < maxTries &&
+                    !(gotLock = GLOBAL_INSTANCE_LOCK.tryLock(5000, TimeUnit.MILLISECONDS)))
+            {
+                numTries++;
+                if (currentJob != null)
+                {
+                    currentJob.yieldRule(null);
+                }
+            }
+
+            if (!gotLock)
+            {
+                return null;
+            }
             StandardModelFactory.debug(">START getModel: "+modelContext, StandardModelFactory.DEBUG_MD_GET); //$NON-NLS-1$
 
             MetaDataModel model = models.get(modelContext);
@@ -85,15 +109,26 @@
     		}
     		return null;
         }
+        catch (final InterruptedException e)
+        {
+            return null;
+        }
+        finally
+        {
+            if (gotLock)
+            {
+                GLOBAL_INSTANCE_LOCK.unlock();
+            }
+        }
     }
 
 	private MetaDataModel loadMetadata(final IMetaDataModelContext context) {
-        if (!Thread.holdsLock(GLOBAL_INSTANCE_LOCK)) {
-            JSFCommonPlugin
-                    .log(IStatus.ERROR,
-                            "Internal Error: loadMetadata must not be called if class lock not held"); //$NON-NLS-1$
-            return null;
-        }
+//        if (!Thread.holdsLock(GLOBAL_INSTANCE_LOCK.)) {
+//            JSFCommonPlugin
+//                    .log(IStatus.ERROR,
+//                            "Internal Error: loadMetadata must not be called if class lock not held"); //$NON-NLS-1$
+//            return null;
+//        }
 
         final IDomainLoadingStrategy strategy = DomainLoadingStrategyRegistry
                 .getInstance().getLoadingStrategy(
@@ -120,11 +155,18 @@
             models.put(model);
     }
 
+    @Override
     public void dispose() {
     	super.dispose();
     	models.dispose();
     }
-    
+
+    @Override
+    public void destroy() {
+        // no persistent data to cleanup. just call dispose
+        dispose();
+    }
+
     /**
      * Map of models keyed by DOMAIN_ID:MODEL_ID from the context.   Project is not part of key.
      * 
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/MetaDataModelManagerFactory.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/MetaDataModelManagerFactory.java
index dd0e61b..246755b 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/MetaDataModelManagerFactory.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/MetaDataModelManagerFactory.java
@@ -14,6 +14,7 @@
 import java.util.List;
 
 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;
@@ -23,13 +24,13 @@
 import org.eclipse.jst.jsf.common.internal.resource.ResourceSingletonObjectManager;
 import org.eclipse.jst.jsf.common.internal.strategy.AbstractTestableExtensibleDefaultProviderSelectionStrategy;
 import org.eclipse.jst.jsf.common.internal.strategy.ISimpleStrategy;
-import org.eclipse.jst.jsf.common.internal.strategy.TestableProjectFactoryStrategy;
+import org.eclipse.jst.jsf.common.internal.strategy.TestableResourceFactoryStrategy;
 
 /**
  * Produces {@link IMetaDataModelManager}s
  *
  */
-public final class MetaDataModelManagerFactory extends ResourceSingletonObjectManager<IMetaDataModelManager, IProject> {
+public final class MetaDataModelManagerFactory extends ResourceSingletonObjectManager<IMetaDataModelManager, IResource> {
 
 	private static MetaDataModelManagerFactory 	INSTANCE;
 	
@@ -53,10 +54,10 @@
 	 */
 	public static IMetaDataModelManager getMetaDataModelManagerInstance(final IProject project) {
 		try {
-			return getMetaDataModelManagerFactoryInstance(project).getInstance(project);			
+			return getMetaDataModelManagerFactoryInstance(project).getInstance(project != null ? project : ResourcesPlugin.getWorkspace().getRoot());			
 		} catch (ManagedObjectException e) {
-			if (project.getProject() != null)
-				JSFCommonPlugin.log(e, "Cannot create IMetaDataModelManager for "+project.getProject().getName()+ " (1)"); //$NON-NLS-1$ //$NON-NLS-2$
+			if (project != null)
+				JSFCommonPlugin.log(e, "Cannot create IMetaDataModelManager for "+project.getName()+ " (1)"); //$NON-NLS-1$ //$NON-NLS-2$
 			else
 				JSFCommonPlugin.log(e, "Cannot create workspace shared IMetaDataModelManager (1)"); //$NON-NLS-1$ 
 		}
@@ -89,32 +90,32 @@
 	}
 	
 	@Override
-	protected IMetaDataModelManager createNewInstance(final IProject project) {
+	protected IMetaDataModelManager createNewInstance(final IResource resource) {
 		try {
-			final IMetaDataModelManagerFactory factory = getMetaDataModelManagerFactoryProviderInstances(project);
+			final IMetaDataModelManagerFactory factory = getMetaDataModelManagerFactoryProviderInstances(resource);
 			if (factory != null)
-				return factory.getInstance(project);
+				return factory.getInstance(resource);
 		} catch (Exception e) {
-			if (project != null)
-				JSFCommonPlugin.log(e, "Cannot create IMetaDataModelManager for "+project.getName()+ " (2)"); //$NON-NLS-1$ //$NON-NLS-2$
+			if (resource != null)
+				JSFCommonPlugin.log(e, "Cannot create IMetaDataModelManager for "+resource.getName()+ " (2)"); //$NON-NLS-1$ //$NON-NLS-2$
 			else
 				JSFCommonPlugin.log(e, "Cannot create workspace shared IMetaDataModelManager (2)"); //$NON-NLS-1$ 
 		}			
 		return null;
 	}
 
-	private IMetaDataModelManagerFactory getMetaDataModelManagerFactoryProviderInstances(final IProject project) {
+	private IMetaDataModelManagerFactory getMetaDataModelManagerFactoryProviderInstances(final IResource resource) {
 		final CompositeFactorySelectionStrategyProvider factoryProvider = new CompositeFactorySelectionStrategyProvider();		
-		return factoryProvider != null ? factoryProvider.getFactoryToUse(project) : null;
+		return factoryProvider != null ? factoryProvider.getFactoryToUse(resource) : null;
 	}
 	
 	private class CompositeFactorySelectionStrategyProvider
 	{
-		public IMetaDataModelManagerFactory getFactoryToUse(final IProject project) {
+		public IMetaDataModelManagerFactory getFactoryToUse(final IResource resource) {
 			final MetaDataModelManagerProviderSelectionStrategy providerSelector = new MetaDataModelManagerProviderSelectionStrategy();		
 	        addStrategies(providerSelector);
 	        
-			final IMetaDataModelManagerFactory provider = providerSelector.perform(project);
+			final IMetaDataModelManagerFactory provider = providerSelector.perform(resource);
 	        if (provider != providerSelector.getNoResult())
 	        {
 	            return provider;
@@ -132,7 +133,7 @@
 	
 	private static class MetaDataModelManagerProviderSelectionStrategy
 		extends
-			AbstractTestableExtensibleDefaultProviderSelectionStrategy<IProject, IMetaDataModelManagerFactory> {
+			AbstractTestableExtensibleDefaultProviderSelectionStrategy<IResource, IMetaDataModelManagerFactory> {
 		
 		private static final IMetaDataModelManagerFactory NO_RESULT = null;
 		
@@ -143,7 +144,7 @@
 	}
 	
 	private abstract class AbstractManagerProviderStrategy 
-		implements ISimpleStrategy<IProject, IMetaDataModelManagerFactory> {
+		implements ISimpleStrategy<IResource, IMetaDataModelManagerFactory> {
 		
 		private final IMetaDataModelManagerFactory NO_RESULT = null;
 		public IMetaDataModelManagerFactory getNoResult() {
@@ -151,11 +152,10 @@
 		}
 	}
 	
-
 	private class DefaultManagerProviderStrategy extends
 			AbstractManagerProviderStrategy {
 
-		public IMetaDataModelManagerFactory perform(final IProject input) throws Exception {
+		public IMetaDataModelManagerFactory perform(final IResource input) throws Exception {
 			return new DefaultManagerProvider();
 		}
 
@@ -164,9 +164,9 @@
 	private static class DefaultManagerProvider 
 		implements IMetaDataModelManagerFactory {
 
-		public IMetaDataModelManager getInstance(final IProject project) {
-			if (project != null)
-				return new MetaDataModelManager(project);
+		public IMetaDataModelManager getInstance(final IResource project) {
+			if (project != null && project instanceof IProject)
+				return new MetaDataModelManager((IProject)project);
 			return MetaDataModelManager.getSharedInstance();
 		}
 		
@@ -175,13 +175,13 @@
 	private class ExtensionBasedManagerProviderStrategy 
 		extends AbstractManagerProviderStrategy {
 	
-		public IMetaDataModelManagerFactory perform(final IProject input) throws Exception {
+		public IMetaDataModelManagerFactory perform(final IResource input) throws Exception {
 			return EXT_PT_BASED_FACTORY != null ? EXT_PT_BASED_FACTORY : getNoResult();
 		}
 	}
 	
 	private static class TestableManagerProviderStrategy<IMetaDataModelManagerFactory>
-		extends TestableProjectFactoryStrategy<IMetaDataModelManagerFactory> {
+		extends TestableResourceFactoryStrategy<IMetaDataModelManagerFactory> {
 	
 		/**
 		 * @param testableFactorySessionKey - project property session key for property value holding testable instance 
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/TaglibDomainMetaDataModelContextImpl.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/TaglibDomainMetaDataModelContextImpl.java
index 26a678a..4f8f4ad 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/TaglibDomainMetaDataModelContextImpl.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/TaglibDomainMetaDataModelContextImpl.java
@@ -52,6 +52,8 @@
 	public Object getAdapter(Class adapter) {
 		if (adapter.equals(ITaglibDomainMetaDataModelContext.class))
 			return this;
+		if (adapter.equals(IProject.class))
+			return _project;
 		
 		return super.getAdapter(adapter);
 	}
diff --git