This commit was manufactured by cvs2svn to create tag 'v20060503'.
diff --git a/assembly/plugins/org.eclipse.jsf.branding/.classpath b/assembly/plugins/org.eclipse.jsf.branding/.classpath
deleted file mode 100644
index 751c8f2..0000000
--- a/assembly/plugins/org.eclipse.jsf.branding/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/assembly/plugins/org.eclipse.jsf.branding/.cvsignore b/assembly/plugins/org.eclipse.jsf.branding/.cvsignore
deleted file mode 100644
index 3bc67e4..0000000
--- a/assembly/plugins/org.eclipse.jsf.branding/.cvsignore
+++ /dev/null
@@ -1,3 +0,0 @@
-@dot*
-temp.folder
-build.xml
diff --git a/assembly/plugins/org.eclipse.jsf.branding/.project b/assembly/plugins/org.eclipse.jsf.branding/.project
deleted file mode 100644
index bd50004..0000000
--- a/assembly/plugins/org.eclipse.jsf.branding/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jsf.branding</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/assembly/plugins/org.eclipse.jsf.branding/META-INF/MANIFEST.MF b/assembly/plugins/org.eclipse.jsf.branding/META-INF/MANIFEST.MF
deleted file mode 100644
index b24d7e8..0000000
--- a/assembly/plugins/org.eclipse.jsf.branding/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,11 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %plugin.Name
-Bundle-SymbolicName: org.eclipse.jsf
-Bundle-Version: 0.5.0.qualifier
-Bundle-Activator: org.eclipse.jsf.main.MainPlugin
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime
-Eclipse-AutoStart: true
-Bundle-Vendor: %plugin.Provider
diff --git a/assembly/plugins/org.eclipse.jsf.branding/about.html b/assembly/plugins/org.eclipse.jsf.branding/about.html
deleted file mode 100644
index 6f6b96c..0000000
--- a/assembly/plugins/org.eclipse.jsf.branding/about.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>February 24, 2005</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>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/assembly/plugins/org.eclipse.jsf.branding/about.ini b/assembly/plugins/org.eclipse.jsf.branding/about.ini
deleted file mode 100644
index a21a3ec..0000000
--- a/assembly/plugins/org.eclipse.jsf.branding/about.ini
+++ /dev/null
@@ -1,29 +0,0 @@
-# about.ini
-# contains information about a feature
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# "%key" are externalized strings defined in about.properties
-# This file does not need to be translated.
-
-# Property "aboutText" contains blurb for "About" dialog (translated)
-aboutText=%blurb
-
-# Property "windowImage" contains path to window icon (16x16)
-# needed for primary features only
-
-# Property "featureImage" contains path to feature image (32x32)
-featureImage=eclipse32.gif
-
-# Property "aboutImage" contains path to product image (500x330 or 115x164)
-# needed for primary features only
-
-# Property "appName" contains name of the application (translated)
-# needed for primary features only
-
-# Property "welcomePage" contains path to welcome page (special XML-based format)
-# optional
-
-# Property "welcomePerspective" contains the id of the perspective in which the
-# welcome page is to be opened.
-# optional
-
-
diff --git a/assembly/plugins/org.eclipse.jsf.branding/about.mappings b/assembly/plugins/org.eclipse.jsf.branding/about.mappings
deleted file mode 100644
index bddaab4..0000000
--- a/assembly/plugins/org.eclipse.jsf.branding/about.mappings
+++ /dev/null
@@ -1,6 +0,0 @@
-# about.mappings
-# contains fill-ins for about.properties
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file does not need to be translated.
-
-0=@build@
\ No newline at end of file
diff --git a/assembly/plugins/org.eclipse.jsf.branding/about.properties b/assembly/plugins/org.eclipse.jsf.branding/about.properties
deleted file mode 100644
index c62b076..0000000
--- a/assembly/plugins/org.eclipse.jsf.branding/about.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-###############################################################################
-# Copyright (c) 2005 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.
-
-blurb=JavaServer Faces Tools\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/assembly/plugins/org.eclipse.jsf.branding/build.properties b/assembly/plugins/org.eclipse.jsf.branding/build.properties
deleted file mode 100644
index bbae244..0000000
--- a/assembly/plugins/org.eclipse.jsf.branding/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               eclipse32.png,\
-               eclipse32.gif,\
-               about.properties,\
-               about.mappings,\
-               about.ini,\
-               about.html,\
-               plugin.properties,\
-               bin/
-src.includes = src/,\
-               eclipse32.png,\
-               eclipse32.gif,\
-               build.properties,\
-               about.properties,\
-               about.mappings,\
-               about.ini,\
-               about.html,\
-               META-INF/,\
-               plugin.properties
diff --git a/assembly/plugins/org.eclipse.jsf.branding/eclipse32.gif b/assembly/plugins/org.eclipse.jsf.branding/eclipse32.gif
deleted file mode 100644
index e6ad7cc..0000000
--- a/assembly/plugins/org.eclipse.jsf.branding/eclipse32.gif
+++ /dev/null
Binary files differ
diff --git a/assembly/plugins/org.eclipse.jsf.branding/eclipse32.png b/assembly/plugins/org.eclipse.jsf.branding/eclipse32.png
deleted file mode 100644
index 568fac1..0000000
--- a/assembly/plugins/org.eclipse.jsf.branding/eclipse32.png
+++ /dev/null
Binary files differ
diff --git a/assembly/plugins/org.eclipse.jsf.branding/plugin.properties b/assembly/plugins/org.eclipse.jsf.branding/plugin.properties
deleted file mode 100644
index fe471d2..0000000
--- a/assembly/plugins/org.eclipse.jsf.branding/plugin.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-plugin.Name=JavaServer Faces Tools
-plugin.Provider=Eclipse.org
\ No newline at end of file
diff --git a/assembly/plugins/org.eclipse.jsf.branding/src/org/eclipse/jsf/main/MainPlugin.java b/assembly/plugins/org.eclipse.jsf.branding/src/org/eclipse/jsf/main/MainPlugin.java
deleted file mode 100644
index a8b13fe..0000000
--- a/assembly/plugins/org.eclipse.jsf.branding/src/org/eclipse/jsf/main/MainPlugin.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package org.eclipse.jsf.main;
-
-import org.eclipse.ui.plugin.*;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.osgi.framework.BundleContext;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class MainPlugin extends AbstractUIPlugin {
-
-	//The shared instance.
-	private static MainPlugin plugin;
-	
-	/**
-	 * The constructor.
-	 */
-	public MainPlugin() {
-		plugin = this;
-	}
-
-	/**
-	 * This method is called upon plug-in activation
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-	}
-
-	/**
-	 * This method is called when the plug-in is stopped
-	 */
-	public void stop(BundleContext context) throws Exception {
-		super.stop(context);
-		plugin = null;
-	}
-
-	/**
-	 * Returns the shared instance.
-	 */
-	public static MainPlugin getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * Returns an image descriptor for the image file at the given
-	 * plug-in relative path.
-	 *
-	 * @param path the path
-	 * @return the image descriptor
-	 */
-	public static ImageDescriptor getImageDescriptor(String path) {
-		return AbstractUIPlugin.imageDescriptorFromPlugin("org.eclipse.jsf.main", path);
-	}
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/.classpath b/jsf/plugins/org.eclipse.jst.jsf.core/.classpath
deleted file mode 100644
index 751c8f2..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/.cvsignore b/jsf/plugins/org.eclipse.jst.jsf.core/.cvsignore
deleted file mode 100644
index 7033a79..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/.cvsignore
+++ /dev/null
@@ -1,4 +0,0 @@
-bin
-@dot*
-temp.folder
-build.xml
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/.project b/jsf/plugins/org.eclipse.jst.jsf.core/.project
deleted file mode 100644
index 0cd3e27..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jst.jsf.core</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/META-INF/MANIFEST.MF b/jsf/plugins/org.eclipse.jst.jsf.core/META-INF/MANIFEST.MF
deleted file mode 100644
index 4c31f65..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,35 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %plugin.name
-Bundle-SymbolicName: org.eclipse.jst.jsf.core; singleton:=true
-Bundle-Version: 0.5.0.qualifier
-Bundle-Activator: org.eclipse.jst.jsf.core.internal.JSFCorePlugin
-Bundle-Vendor: %plugin.provider
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.wst.common.project.facet.core,
- org.eclipse.jst.j2ee.web,
- org.eclipse.jst.server.core,
- org.eclipse.wst.server.core,
- org.eclipse.wst.common.frameworks,
- org.eclipse.jst.common.frameworks,
- org.eclipse.jdt.core,
- org.eclipse.core.resources,
- org.eclipse.jst.j2ee,
- org.eclipse.emf.common,
- org.eclipse.emf.ecore,
- org.eclipse.emf.ecore.xmi,
- org.eclipse.jst.j2ee.core,
- org.eclipse.jem.util,
- org.eclipse.wst.xml.core,
- org.eclipse.jst.jsf.facesconfig,
- org.eclipse.wst.common.emf
-Eclipse-LazyStart: true
-Export-Package: org.eclipse.jst.jsf.core.internal;x-friends:="org.eclipse.jst.jsf.core.tests,org.eclipse.jst.jsf.ui,org.eclipse.jst.jsf.ui.tests",
- org.eclipse.jst.jsf.core.internal.jsflibraryregistry;x-friends:="org.eclipse.jst.jsf.core.tests,org.eclipse.jst.jsf.ui,org.eclipse.jst.jsf.ui.tests",
- org.eclipse.jst.jsf.core.internal.jsflibraryregistry.adapter;x-friends:="org.eclipse.jst.jsf.core.tests,org.eclipse.jst.jsf.ui,org.eclipse.jst.jsf.ui.tests",
- org.eclipse.jst.jsf.core.internal.jsflibraryregistry.impl;x-friends:="org.eclipse.jst.jsf.core.tests,org.eclipse.jst.jsf.ui,org.eclipse.jst.jsf.ui.tests",
- org.eclipse.jst.jsf.core.internal.jsflibraryregistry.util;x-friends:="org.eclipse.jst.jsf.core.tests,org.eclipse.jst.jsf.ui,org.eclipse.jst.jsf.ui.tests",
- org.eclipse.jst.jsf.core.internal.project.facet;x-friends:="org.eclipse.jst.jsf.core.tests,org.eclipse.jst.jsf.ui,org.eclipse.jst.jsf.ui.tests",
- org.eclipse.jst.jsf.core.internal.provisional.jsfappconfig,
- org.eclipse.jst.jsf.core.jsflibraryregistry
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/build.properties b/jsf/plugins/org.eclipse.jst.jsf.core/build.properties
deleted file mode 100644
index 6f6a25d..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/build.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# 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
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.xml,\
-               plugin.properties
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/model/jsflibraryregistry.ecore b/jsf/plugins/org.eclipse.jst.jsf.core/model/jsflibraryregistry.ecore
deleted file mode 100644
index c4ed268..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/model/jsflibraryregistry.ecore
+++ /dev/null
@@ -1,86 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ecore:EPackage xmi:version="2.0"
-    xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="jsflibraryregistry"
-    nsURI="http://www.eclipse.org/webtools/jsf/schema/jsflibraryregistry.xsd" nsPrefix="jsflibreg">
-  <eClassifiers xsi:type="ecore:EClass" name="JSFLibraryRegistry">
-    <eOperations name="getJSFLibraryByID" lowerBound="1" eType="#//JSFLibrary">
-      <eParameters name="ID" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    </eOperations>
-    <eOperations name="getJSFLibrariesByName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EEList">
-      <eParameters name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    </eOperations>
-    <eOperations name="getImplJSFLibraries" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EEList"/>
-    <eOperations name="getNonImplJSFLibraries" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EEList"/>
-    <eOperations name="getAllJSFLibraries" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EEList"/>
-    <eOperations name="addJSFLibrary" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="library" lowerBound="1" eType="#//JSFLibrary"/>
-    </eOperations>
-    <eOperations name="removeJSFLibrary" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="library" lowerBound="1" eType="#//JSFLibrary"/>
-    </eOperations>
-    <eOperations name="getDefaultImplementation" lowerBound="1" eType="#//JSFLibrary"/>
-    <eOperations name="setDefaultImplementation" lowerBound="1">
-      <eParameters name="implementation" lowerBound="1" eType="#//JSFLibrary"/>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="DefaultImplementationID"
-        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" defaultValueLiteral=""/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="JSFLibraries" upperBound="-1"
-        eType="#//JSFLibrary" containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="PluginProvidedJSFLibraries"
-        upperBound="-1" eType="#//PluginProvidedJSFLibrary" transient="true" containment="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="JSFLibrary">
-    <eOperations name="containsArchiveFile" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="fullPath" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    </eOperations>
-    <eOperations name="getWorkingCopy" lowerBound="1" eType="#//JSFLibrary"/>
-    <eOperations name="updateValues" lowerBound="1">
-      <eParameters name="otherLibrary" lowerBound="1" eType="#//JSFLibrary"/>
-    </eOperations>
-    <eOperations name="copyTo" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="baseDestLocation" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="ID" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
-        defaultValueLiteral="" iD="true"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="Name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="JSFVersion" lowerBound="1"
-        eType="#//JSFVersion" defaultValueLiteral="UNKNOWN"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="Deployed" lowerBound="1"
-        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="true"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="Implementation" lowerBound="1"
-        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="ArchiveFiles" upperBound="-1"
-        eType="#//ArchiveFile" containment="true" eOpposite="#//ArchiveFile/JSFLibrary"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="PluginProvidedJSFLibrary" eSuperTypes="#//JSFLibrary">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="pluginID" lowerBound="1"
-        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ArchiveFile">
-    <eOperations name="getName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    <eOperations name="getPath" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    <eOperations name="exists" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
-    <eOperations name="equals" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="object" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
-    </eOperations>
-    <eOperations name="hashCode" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
-    <eOperations name="copyTo" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
-      <eParameters name="baseDestLocation" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    </eOperations>
-    <eOperations name="getResolvedSourceLocation" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="RelativeToWorkspace" lowerBound="1"
-        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="true"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="SourceLocation" lowerBound="1"
-        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="RelativeDestLocation" lowerBound="1"
-        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="JSFLibrary" lowerBound="1"
-        eType="#//JSFLibrary" eOpposite="#//JSFLibrary/ArchiveFiles"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EEnum" name="JSFVersion">
-    <eLiterals name="UNKNOWN" value="-1"/>
-    <eLiterals name="v1_1" value="1"/>
-    <eLiterals name="v1_2" value="2"/>
-  </eClassifiers>
-</ecore:EPackage>
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/model/jsflibraryregistry.genmodel b/jsf/plugins/org.eclipse.jst.jsf.core/model/jsflibraryregistry.genmodel
deleted file mode 100644
index 0bde041..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/model/jsflibraryregistry.genmodel
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<genmodel:GenModel xmi:version="2.0"
-    xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
-    xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="Copyright (c) 2005 Oracle Corporation"
-    modelDirectory="/org.eclipse.jst.jsf.core/src" editDirectory="/org.eclipse.jst.jsf.core.edit/src"
-    editorDirectory="/org.eclipse.jst.jsf.core.editor/src" modelPluginID="org.eclipse.jst.jsf.core"
-    templateDirectory="templates" dynamicTemplates="true" modelName="JSFLibraryRegistry"
-    importerID="org.eclipse.emf.importer.ecore">
-  <foreignModel>jsflibraryregistry.ecore</foreignModel>
-  <genPackages prefix="JSFLibraryRegistry" basePackage="org.eclipse.jst.jsf.core.internal"
-      resource="XML" disposableProviderFactory="true" ecorePackage="jsflibraryregistry.ecore#/">
-    <genEnums ecoreEnum="jsflibraryregistry.ecore#//JSFVersion">
-      <genEnumLiterals ecoreEnumLiteral="jsflibraryregistry.ecore#//JSFVersion/v1_1"/>
-      <genEnumLiterals ecoreEnumLiteral="jsflibraryregistry.ecore#//JSFVersion/v1_2"/>
-      <genEnumLiterals ecoreEnumLiteral="jsflibraryregistry.ecore#//JSFVersion/UNKNOWN"/>
-    </genEnums>
-    <genClasses ecoreClass="jsflibraryregistry.ecore#//JSFLibraryRegistry">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference jsflibraryregistry.ecore#//JSFLibraryRegistry/JSFLibraries"/>
-      <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference jsflibraryregistry.ecore#//JSFLibraryRegistry/DefaultImplementation"/>
-      <genOperations ecoreOperation="jsflibraryregistry.ecore#//JSFLibraryRegistry/getJSFLibrary">
-        <genParameters ecoreParameter="jsflibraryregistry.ecore#//JSFLibraryRegistry/getJSFLibrary/name"/>
-      </genOperations>
-      <genOperations ecoreOperation="jsflibraryregistry.ecore#//JSFLibraryRegistry/getImplJSFLibraries"/>
-      <genOperations ecoreOperation="jsflibraryregistry.ecore#//JSFLibraryRegistry/getNonImplJSFLibraries"/>
-    </genClasses>
-    <genClasses ecoreClass="jsflibraryregistry.ecore#//JSFLibrary">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute jsflibraryregistry.ecore#//JSFLibrary/Name"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute jsflibraryregistry.ecore#//JSFLibrary/JSFVersion"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute jsflibraryregistry.ecore#//JSFLibrary/Deployed"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute jsflibraryregistry.ecore#//JSFLibrary/Implementation"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference jsflibraryregistry.ecore#//JSFLibrary/ArchiveFiles"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference jsflibraryregistry.ecore#//JSFLibrary/JSFLibraryRegistry"/>
-      <genOperations ecoreOperation="jsflibraryregistry.ecore#//JSFLibrary/equals">
-        <genParameters ecoreParameter="jsflibraryregistry.ecore#//JSFLibrary/equals/object"/>
-      </genOperations>
-      <genOperations ecoreOperation="jsflibraryregistry.ecore#//JSFLibrary/hashCode"/>
-    </genClasses>
-    <genClasses ecoreClass="jsflibraryregistry.ecore#//ArchiveFile">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute jsflibraryregistry.ecore#//ArchiveFile/FullPath"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference jsflibraryregistry.ecore#//ArchiveFile/JSFLibrary"/>
-      <genOperations ecoreOperation="jsflibraryregistry.ecore#//ArchiveFile/getName"/>
-      <genOperations ecoreOperation="jsflibraryregistry.ecore#//ArchiveFile/getPath"/>
-      <genOperations ecoreOperation="jsflibraryregistry.ecore#//ArchiveFile/exists"/>
-      <genOperations ecoreOperation="jsflibraryregistry.ecore#//ArchiveFile/equals">
-        <genParameters ecoreParameter="jsflibraryregistry.ecore#//ArchiveFile/equals/object"/>
-      </genOperations>
-      <genOperations ecoreOperation="jsflibraryregistry.ecore#//ArchiveFile/hashCode"/>
-    </genClasses>
-  </genPackages>
-</genmodel:GenModel>
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/model/templates/Header.javajetinc b/jsf/plugins/org.eclipse.jst.jsf.core/model/templates/Header.javajetinc
deleted file mode 100644
index aadfb40..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/model/templates/Header.javajetinc
+++ /dev/null
@@ -1,10 +0,0 @@
-/*******************************************************************************

- * 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:

- *    Ian Trimble - initial API and implementation

- *******************************************************************************/ 

diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/plugin.properties b/jsf/plugins/org.eclipse.jst.jsf.core/plugin.properties
deleted file mode 100644
index a3166c6..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/plugin.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# 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
-###############################################################################
-plugin.name=JavaServer Faces Core Plug-in
-plugin.provider=Eclipse.org
-plugin.facet.description=Enables the project to be deployed with JSF capabilities.
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/plugin.xml b/jsf/plugins/org.eclipse.jst.jsf.core/plugin.xml
deleted file mode 100644
index 4b82807..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/plugin.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-   <extension-point id="jsfLibraries" name="jsfLibraries" schema="schema/jsfLibraries.exsd"/>
-  <!-- JSF Project Facets -->
-	<extension
-       id="org.eclipse.jst.jsf.project.facet"
-       name="%plugin.facet.extension.name"
-       point="org.eclipse.wst.common.project.facet.core.facets">
-
-    <project-facet id="jst.jsf">
-      <label>JavaServer Faces</label>
-      <description>%plugin.facet.description</description>
-    </project-facet>
-
-    <project-facet-version facet="jst.jsf" version="1.1">
-       <constraint>
-        <and>
-          <requires facet="jst.web" version="[2.3"/>
-        </and>
-      </constraint>
-    </project-facet-version> 
-    
-    <project-facet-version facet="jst.jsf" version="1.2">
-     <constraint>
-        <and>
-          <requires facet="jst.web" version="[2.4"/>
-        </and>
-      </constraint>
-    </project-facet-version>    
-
-   	<action type="install" facet="jst.jsf" version="1.1,1.2">
-		<delegate
-        class="org.eclipse.jst.jsf.core.internal.project.facet.JSFFacetInstallDelegate"/>
-		<config-factory class="org.eclipse.jst.jsf.core.internal.project.facet.JSFFacetInstallDataModelProvider"/>
-	</action>
-    
-	<action type="uninstall" facet="jst.jsf" version="1.1,1.2">
-	 	<delegate
-         class="org.eclipse.jst.jsf.core.internal.project.facet.JSFFacetUninstallDelegate"/>
- 	</action>
- 	
-	<preset id="preset.jst.jsf.v1_1">
-	    <label>JavaServer Faces v1.1 Project</label>
-	    <facet id="jst.java" version="1.4" />
-	    <facet id="jst.web" version="2.3"/>
-	    <facet id="jst.jsf" version="1.1" />
-	</preset>    
- 	
-  </extension> 
-  
-  <extension point="org.eclipse.wst.common.project.facet.core.runtimes">
-    <supported>
-		<runtime-component any="true"/>
-       	<facet id="jst.jsf" version="1.1,1.2"/>
-    </supported>
-  </extension>
-    
-  <extension
-     name="JSF JSP File URL"
-     point="org.eclipse.jst.j2ee.web.fileURL">
-     <fileURL run="org.eclipse.jst.jsf.core.internal.launch.JSFFileURL"/>
-  </extension>
-  <extension
-        point="org.eclipse.wst.xml.core.catalogContributions">
-     <catalogContribution>
-        <system
-              systemId="http://org.eclipse.jst.jsf.core/grammarAnnotationSchema"
-              uri="schema/grammar-annotations.xsd"/>
-     </catalogContribution>
-  </extension>
-  
-</plugin>
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/schema/grammar-annotations.xsd b/jsf/plugins/org.eclipse.jst.jsf.core/schema/grammar-annotations.xsd
deleted file mode 100644
index 8b4a47e..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/schema/grammar-annotations.xsd
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsd:schema
-	targetNamespace="http://org.eclipse.jst.jsf.core/grammarAnnotationSchema" 
-	version="1.0"
-	attributeFormDefault="unqualified"
-	elementFormDefault="unqualified" 
-	xmlns="http://org.eclipse.jst.jsf.core/grammarAnnotationSchema"
-	xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-	
-	<xsd:element name="grammar-annotations"
-		type="grammar-annotationType" />
-		
-	<xsd:complexType name="grammar-annotationType">
-		<xsd:sequence>
-			<xsd:element name="cm-element"
-				type="cm-elementType" minOccurs="1" maxOccurs="unbounded" />
-		</xsd:sequence>
-		<xsd:attribute name="caseSensitive" type="xsd:boolean" use="optional" default="true"/>
-	</xsd:complexType>
-	<xsd:complexType name="cm-elementType">
-		<xsd:sequence>
-			<xsd:element name="cm-attribute" type="cm-attributeType" minOccurs="0" maxOccurs="unbounded"/>
-			<xsd:element name="property" type="propertyType" minOccurs="0" maxOccurs="unbounded"/>
-		</xsd:sequence>
-		<xsd:attribute name="name" type="xsd:string" use="required"/>
-	</xsd:complexType>
-	<xsd:complexType name="cm-attributeType">
-		<xsd:sequence>
-			<xsd:element name="property"
-				type="propertyType" minOccurs="0" maxOccurs="unbounded"/>
-		</xsd:sequence>
-		<xsd:attribute name="name" type="xsd:string" use="required"/>
-	</xsd:complexType>
-	<xsd:complexType name="propertyType">
-		<xsd:sequence>
-			<xsd:element name="value" type="propertyValue" minOccurs="1" maxOccurs="unbounded"/>
-		</xsd:sequence>		
-		<xsd:attribute name="name" type="xsd:string" use="required"/>		
-	</xsd:complexType>
-	<xsd:complexType name="propertyValue">
-		<xsd:all></xsd:all>
-	</xsd:complexType>
-</xsd:schema>
\ No newline at end of file
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/schema/jsfLibraries.exsd b/jsf/plugins/org.eclipse.jst.jsf.core/schema/jsfLibraries.exsd
deleted file mode 100644
index 36739b4..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/schema/jsfLibraries.exsd
+++ /dev/null
@@ -1,160 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.jst.jsf.core">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.jst.jsf.core" id="jsfLibraries" name="org.eclipse.jst.jsf.core.jsfLibraries"/>
-      </appInfo>
-      <documentation>
-         This extension point allows clients to create named sets of jars for use with JavaServer Faces Applications.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="jsfLibrary" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="jsfLibrary">
-      <annotation>
-         <documentation>
-            A named collection of jars that can be copied as a unit to WEB-INF/lib.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="name" type="string" use="required">
-            <annotation>
-               <documentation>
-                  A unique name for the library that will be displayed to an end user.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="isImplementation" type="boolean" use="required">
-            <annotation>
-               <documentation>
-                  Flag indicating that this libary is declared to be a JSF implementation and not just a JSF component library.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="maxVersionSupported">
-            <annotation>
-               <documentation>
-                  Used to declare which JSF specification this library will support.
-               </documentation>
-            </annotation>
-            <simpleType>
-               <restriction base="string">
-                  <enumeration value="v1_1">
-                  </enumeration>
-                  <enumeration value="v1_2">
-                  </enumeration>
-                  <enumeration value="UNKNOWN">
-                  </enumeration>
-               </restriction>
-            </simpleType>
-         </attribute>
-         <attribute name="archiveFilesDelegate" type="string" use="required">
-            <annotation>
-               <documentation>
-                  class that must extend org.eclipse.jst.jsf.core.jsflibraryregistry.JSFLibraryArchiveFilesDelegate to supply a collection of ArchiveFiles for the library
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         JSF M1
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         The following is an example of a jsfLibrary extension point:
-
-&lt;p&gt;
-&lt;pre&gt;
-  &lt;extension point=&quot;org.eclipse.jst.jsf.core.jsfLibraries&quot;&gt;
-    &lt;jsfLibrary       
-       name=&quot;MyComponentLib1&quot;
-       isImplementation=&quot;false&quot;
-       maxVersionSupported=&quot;v1_1&quot;
-       archiveFilesDelegate=&quot;com.acme.jsf.libraries.MyComponentLibraryFiles&quot;/&gt;
-  &lt;/extension&gt;
-&lt;/pre&gt;
-&lt;/p&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         Value of the attribute class must be a fully qualified name of a Java class that extends the abstract class &lt;code&gt;org.eclipse.jst.jsf.core.jsflibraryregistry.JSFLibraryArchiveFilesDelegate&lt;/code&gt; and has a public 0-arg constructor.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         none
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         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
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/JSFCorePlugin.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/JSFCorePlugin.java
deleted file mode 100644
index bbb2755..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/JSFCorePlugin.java
+++ /dev/null
@@ -1,214 +0,0 @@
-/*******************************************************************************
- * 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
- *    Ian Trimble - JSFLibraryRegistry work
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.core.internal;
-
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.ILog;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.InvalidRegistryObjectException;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.xmi.XMLResource;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistry;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistryFactory;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.adapter.MaintainDefaultImplementationAdapter;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.impl.JSFLibraryRegistryPackageImpl;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.util.JSFLibraryRegistryResourceFactoryImpl;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.util.JSFLibraryRegistryResourceImpl;
-import org.eclipse.jst.jsf.core.jsflibraryregistry.PluginProvidedJSFLibraryCreationHelper;
-import org.eclipse.wst.common.frameworks.internal.WTPPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * JSF Core plugin.
- * 
- * @author Gerry Kessler - Oracle, Ian Trimble - Oracle
- */
-public class JSFCorePlugin extends WTPPlugin {
-	public static final String PLUGIN_ID = "org.eclipse.jst.jsf.core";//org.eclipse.jst.jsf.core.internal.JSFCorePlugin"; //$NON-NLS-1$
-
-	public static final String FACET_ID = "jst.jsf"; //$NON-NLS-1$
-	
-	// The shared instance.
-	private static JSFCorePlugin plugin;
-
-	// The workspace-relative part of the URL of the JSF Library Registry
-	// persistence store.
-	private static final String JSF_LIBRARY_REGISTRY_URL = ".metadata/.plugins/org.eclipse.jst.jsf.core/JSFLibraryRegistry.xml"; //$NON-NLS-1$
-
-	// The NS URI of the JSF Library Registry's Ecore package. (Must match
-	// setting on package in Ecore model.)
-	private static final String JSF_LIBRARY_REGISTRY_NSURI = "http://www.eclipse.org/webtools/jsf/schema/jsflibraryregistry.xsd"; //$NON-NLS-1$
-
-	public static final String LIB_EXT_PT = "jsfLibraries"; //$NON-NLS-1$
-
-	// The JSF Library Registry EMF resource instance.
-	private JSFLibraryRegistryResourceImpl jsfLibraryRegistryResource = null;
-
-	// The JSF Library Registry instance.
-	private JSFLibraryRegistry jsfLibraryRegistry = null;
-
-	/**
-	 * The constructor.
-	 */
-	public JSFCorePlugin() {
-		plugin = this;
-	}
-
-	/**
-	 * This method is called upon plug-in activation
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		loadJSFLibraryRegistry();
-	}
-
-	/**
-	 * This method is called when the plug-in is stopped
-	 */
-	public void stop(BundleContext context) throws Exception {
-		saveJSFLibraryRegistry();
-		super.stop(context);
-		plugin = null;
-	}
-
-	/**
-	 * Returns the shared instance.
-	 */
-	public static JSFCorePlugin getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * Returns the JSFLibraryRegistry EMF object.
-	 * 
-	 * @return the JSFLibraryRegistry EMF object.
-	 */
-	public JSFLibraryRegistry getJSFLibraryRegistry() {
-		return jsfLibraryRegistry;
-	}
-
-	/**
-	 * Loads the JSFLibraryRegistry EMF object from plugin-specfic workspace
-	 * settings location. (Called from start(BundleContext).)
-	 */
-	public void loadJSFLibraryRegistry() {
-		try {
-			URL jsfLibRegURL = new URL(Platform.getInstanceLocation().getURL(), JSF_LIBRARY_REGISTRY_URL);
-			URI jsfLibRegURI = URI.createURI(jsfLibRegURL.toString());
-			EPackage.Registry.INSTANCE.put(JSF_LIBRARY_REGISTRY_NSURI, JSFLibraryRegistryPackageImpl.init());
-			JSFLibraryRegistryResourceFactoryImpl resourceFactory = new JSFLibraryRegistryResourceFactoryImpl();
-			jsfLibraryRegistryResource = (JSFLibraryRegistryResourceImpl)resourceFactory.createResource(jsfLibRegURI);
-			try {
-				Map options = new HashMap();
-				//disable notifications during load to avoid changing stored default implementation
-				options.put(XMLResource.OPTION_DISABLE_NOTIFY, Boolean.TRUE);
-				jsfLibraryRegistryResource.load(options);
-				jsfLibraryRegistry = (JSFLibraryRegistry)jsfLibraryRegistryResource.getContents().get(0);
-				loadJSFLibraryExtensions();
-			} catch(IOException ioe) {
-				log(IStatus.INFO, Messages.JSFLibraryRegistry_NoLoadCreatingNew, ioe);
-				jsfLibraryRegistry = JSFLibraryRegistryFactory.eINSTANCE.createJSFLibraryRegistry();
-				jsfLibraryRegistryResource.getContents().add(jsfLibraryRegistry);
-				loadJSFLibraryExtensions();
-			}
-			//add adapter to maintain default implementation
-			if (jsfLibraryRegistry != null) {
-				jsfLibraryRegistry.eAdapters().add(MaintainDefaultImplementationAdapter.getInstance());
-			}
-		} catch(MalformedURLException mue) {
-			log(IStatus.ERROR, Messages.JSFLibraryRegistry_ErrorCreatingURL, mue);
-		}
-	}
-
-	/**
-	 * Creates library registry items from extension points.
-	 */
-	private void loadJSFLibraryExtensions() {
-		try {
-			IExtensionPoint point = Platform.getExtensionRegistry().getExtensionPoint(JSFCorePlugin.PLUGIN_ID, JSFCorePlugin.LIB_EXT_PT);
-			IExtension[] extensions = point.getExtensions();
-			for (int i=0;i < extensions.length;i++){
-				IExtension ext = extensions[i];
-				for (int j=0;j < ext.getConfigurationElements().length;j++){
-					PluginProvidedJSFLibraryCreationHelper newLibCreator = new PluginProvidedJSFLibraryCreationHelper(ext.getConfigurationElements()[j]);						
-					JSFLibrary newLib = newLibCreator.create();
-					if (newLib != null)
-						jsfLibraryRegistry.addJSFLibrary(newLib);
-				}
-			}
-		} catch (InvalidRegistryObjectException e) {
-			log(IStatus.ERROR, Messages.JSFLibraryRegistry_ErrorLoadingFromExtPt, e);
-		}
-	}
-
-	/**
-	 * Saves the JSFLibraryRegistry EMF object from plugin-specfic workspace
-	 * settings location. (Called from stop(BundleContext).)
-	 */
-	public boolean saveJSFLibraryRegistry() {
-		boolean saved = false;
-		if (jsfLibraryRegistryResource != null) {
-			try {
-				jsfLibraryRegistryResource.save(Collections.EMPTY_MAP);
-				saved = true;
-			} catch(IOException ioe) {
-				log(IStatus.ERROR, Messages.JSFLibraryRegistry_ErrorSaving, ioe);
-			}
-		} else {
-			log(IStatus.ERROR, Messages.JSFLibraryRegistry_ErrorSaving);
-		}
-		return saved;
-	}
-
-	public static void log(final Exception e, final String msg) {
-		final ILog log = getDefault().getLog();
-
-		log.log(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.OK, msg, e));
-	}
-
-	/**
-	 * Logs using the default ILog implementation provided by getLog().
-	 * 
-	 * @param severity Severity (IStatus constant) of log entry
-	 * @param message Human-readable message describing log entry
-	 * @param ex Throwable instance (can be null)
-	 */
-	public static void log(int severity, String message, Throwable ex) {
-		getDefault().getLog().log(new Status(severity, PLUGIN_ID, IStatus.OK, message, ex));
-	}
-
-	/**
-	 * Logs using the default ILog implementation provided by getLog().
-	 * 
-	 * @param severity Severity (IStatus constant) of log entry
-	 * @param message Human-readable message describing log entry
-	 */
-	public static void log(int severity, String message) {
-		log(severity, message, null);
-	}
-
-	public String getPluginID() {
-		return PLUGIN_ID;
-	}
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/Messages.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/Messages.java
deleted file mode 100644
index 6dd9bf8..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/Messages.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * 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
- *    Ian Trimble - changed to work correctly with org.eclipse.osgi.util.NLS
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.core.internal;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * String resource handler.
- * 
- * @author Gerry Kessler - Oracle, Ian Trimble - Oracle
- */
-public class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.jst.jsf.core.internal.messages"; //$NON-NLS-1$
-
-	public static String JSFLibraryRegistry_ErrorCreatingURL;
-	public static String JSFLibraryRegistry_NoLoadCreatingNew;
-	public static String JSFLibraryRegistry_ErrorSaving;
-	public static String JSFLibraryRegistry_DEFAULT_IMPL_LABEL;
-	public static String JSFLibraryRegistry_ErrorLoadingFromExtPt;
-
-	public static String JSFFacetInstallDataModelProvider_ValidateServletName;
-	public static String JSFFacetInstallDataModelProvider_ValidateJSFImpl;
-	public static String JSFFacetInstallDataModelProvider_ValidateConfigFileEmpty;
-	public static String JSFFacetInstallDataModelProvider_ValidateConfigFilePath;
-	public static String JSFFacetInstallDataModelProvider_ValidateConfigFileRelative1;
-	public static String JSFFacetInstallDataModelProvider_ValidateConfigFileRelative2;
-	public static String JSFFacetInstallDataModelProvider_ValidateConfigFileXML;
-	public static String JSFFacetInstallDataModelProvider_ValidateConfigFileSlashes;
-
-	public static String ArchiveFileImpl_CannotCopyFile;
-	public static String ArchiveFileImpl_CannotCloseFile;
-	public static String ArchiveFileImpl_CannotLocatePluginRelativeFile;
-
-	public static String PluginProvidedJSFLibraryCreationHelper_ErrorCreating;
-	public static String PluginProvidedJSFLibraryCreationHelper_ErrorMultipleDefinition;
-
-	public static String JSFUtils_ErrorCreatingConfigFile;
-	public static String JSFUtils_ErrorClosingConfigFile;
-
-	static {
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/ArchiveFile.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/ArchiveFile.java
deleted file mode 100644
index bbe4c80..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/ArchiveFile.java
+++ /dev/null
@@ -1,212 +0,0 @@
-/*******************************************************************************
- * 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:
- *    Ian Trimble - initial API and implementation
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.core.internal.jsflibraryregistry;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Archive File</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.ArchiveFile#isRelativeToWorkspace <em>Relative To Workspace</em>}</li>
- *   <li>{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.ArchiveFile#getSourceLocation <em>Source Location</em>}</li>
- *   <li>{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.ArchiveFile#getRelativeDestLocation <em>Relative Dest Location</em>}</li>
- *   <li>{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.ArchiveFile#getJSFLibrary <em>JSF Library</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistryPackage#getArchiveFile()
- * @model
- * @generated
- */
-public interface ArchiveFile extends EObject{
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	String copyright = "Copyright (c) 2005 Oracle Corporation";
-
-	/**
-	 * Returns the value of the '<em><b>Source Location</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Source Location</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Source Location</em>' attribute.
-	 * @see #setSourceLocation(String)
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistryPackage#getArchiveFile_SourceLocation()
-	 * @model required="true"
-	 * @generated
-	 */
-	String getSourceLocation();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.ArchiveFile#getSourceLocation <em>Source Location</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * If the value passed is found to be relative to the workspace, a
-	 * workspace-relative location is stored; to prevent this behaviour, call
-	 * isRelativeToWorkspace(false) before calling this method.
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Source Location</em>' attribute.
-	 * @see #getSourceLocation()
-	 * @generated
-	 */
-	void setSourceLocation(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Relative To Workspace</b></em>' attribute.
-	 * The default value is <code>"true"</code>.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Relative To Workspace</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Relative To Workspace</em>' attribute.
-	 * @see #setRelativeToWorkspace(boolean)
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistryPackage#getArchiveFile_RelativeToWorkspace()
-	 * @model default="true" required="true"
-	 * @generated
-	 */
-	boolean isRelativeToWorkspace();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.ArchiveFile#isRelativeToWorkspace <em>Relative To Workspace</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Relative To Workspace</em>' attribute.
-	 * @see #isRelativeToWorkspace()
-	 * @generated
-	 */
-	void setRelativeToWorkspace(boolean value);
-
-	/**
-	 * Returns the value of the '<em><b>Relative Dest Location</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Relative Dest Location</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Relative Dest Location</em>' attribute.
-	 * @see #setRelativeDestLocation(String)
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistryPackage#getArchiveFile_RelativeDestLocation()
-	 * @model required="true"
-	 * @generated
-	 */
-	String getRelativeDestLocation();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.ArchiveFile#getRelativeDestLocation <em>Relative Dest Location</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Relative Dest Location</em>' attribute.
-	 * @see #getRelativeDestLocation()
-	 * @generated
-	 */
-	void setRelativeDestLocation(String value);
-
-	/**
-	 * Returns the value of the '<em><b>JSF Library</b></em>' container reference.
-	 * It is bidirectional and its opposite is '{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary#getArchiveFiles <em>Archive Files</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>JSF Library</em>' container reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>JSF Library</em>' container reference.
-	 * @see #setJSFLibrary(JSFLibrary)
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistryPackage#getArchiveFile_JSFLibrary()
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary#getArchiveFiles
-	 * @model opposite="ArchiveFiles" required="true"
-	 * @generated
-	 */
-	JSFLibrary getJSFLibrary();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.ArchiveFile#getJSFLibrary <em>JSF Library</em>}' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>JSF Library</em>' container reference.
-	 * @see #getJSFLibrary()
-	 * @generated
-	 */
-	void setJSFLibrary(JSFLibrary value);
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Path</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @model kind="operation" required="true"
-	 * @generated
-	 */
-	String getPath();
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @model kind="operation" required="true"
-	 * @generated
-	 */
-	String getName();
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @model required="true"
-	 * @generated
-	 */
-	boolean exists();
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @model required="true" objectRequired="true"
-	 * @generated
-	 */
-	boolean equals(Object object);
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @model required="true"
-	 * @generated
-	 */
-	int hashCode();
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @model required="true" baseDestLocationRequired="true"
-	 * @generated
-	 */
-	boolean copyTo(String baseDestLocation);
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @model kind="operation" required="true"
-	 * @generated
-	 */
-	String getResolvedSourceLocation();
-
-} // ArchiveFile
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/JSFLibrary.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/JSFLibrary.java
deleted file mode 100644
index b664d04..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/JSFLibrary.java
+++ /dev/null
@@ -1,233 +0,0 @@
-/*******************************************************************************
- * 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:
- *    Ian Trimble - initial API and implementation
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.core.internal.jsflibraryregistry;
-
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>JSF Library</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary#getID <em>ID</em>}</li>
- *   <li>{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary#getName <em>Name</em>}</li>
- *   <li>{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary#getJSFVersion <em>JSF Version</em>}</li>
- *   <li>{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary#isDeployed <em>Deployed</em>}</li>
- *   <li>{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary#isImplementation <em>Implementation</em>}</li>
- *   <li>{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary#getArchiveFiles <em>Archive Files</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistryPackage#getJSFLibrary()
- * @model
- * @generated
- */
-public interface JSFLibrary extends EObject{
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	String copyright = "Copyright (c) 2005 Oracle Corporation";
-
-	/**
-	 * Returns the value of the '<em><b>ID</b></em>' attribute.
-	 * The default value is <code>""</code>.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>ID</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>ID</em>' attribute.
-	 * @see #setID(String)
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistryPackage#getJSFLibrary_ID()
-	 * @model default="" id="true" required="true"
-	 * @generated
-	 */
-	String getID();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary#getID <em>ID</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>ID</em>' attribute.
-	 * @see #getID()
-	 * @generated
-	 */
-	void setID(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Name</em>' attribute.
-	 * @see #setName(String)
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistryPackage#getJSFLibrary_Name()
-	 * @model required="true"
-	 * @generated
-	 */
-	String getName();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary#getName <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Name</em>' attribute.
-	 * @see #getName()
-	 * @generated
-	 */
-	void setName(String value);
-
-	/**
-	 * Returns the value of the '<em><b>JSF Version</b></em>' attribute.
-	 * The default value is <code>"UNKNOWN"</code>.
-	 * The literals are from the enumeration {@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFVersion}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>JSF Version</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>JSF Version</em>' attribute.
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFVersion
-	 * @see #setJSFVersion(JSFVersion)
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistryPackage#getJSFLibrary_JSFVersion()
-	 * @model default="UNKNOWN" required="true"
-	 * @generated
-	 */
-	JSFVersion getJSFVersion();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary#getJSFVersion <em>JSF Version</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>JSF Version</em>' attribute.
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFVersion
-	 * @see #getJSFVersion()
-	 * @generated
-	 */
-	void setJSFVersion(JSFVersion value);
-
-	/**
-	 * Returns the value of the '<em><b>Deployed</b></em>' attribute.
-	 * The default value is <code>"true"</code>.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Deployed</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Deployed</em>' attribute.
-	 * @see #setDeployed(boolean)
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistryPackage#getJSFLibrary_Deployed()
-	 * @model default="true" required="true"
-	 * @generated
-	 */
-	boolean isDeployed();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary#isDeployed <em>Deployed</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Deployed</em>' attribute.
-	 * @see #isDeployed()
-	 * @generated
-	 */
-	void setDeployed(boolean value);
-
-	/**
-	 * Returns the value of the '<em><b>Implementation</b></em>' attribute.
-	 * The default value is <code>"false"</code>.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Implementation</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Implementation</em>' attribute.
-	 * @see #setImplementation(boolean)
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistryPackage#getJSFLibrary_Implementation()
-	 * @model default="false" required="true"
-	 * @generated
-	 */
-	boolean isImplementation();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary#isImplementation <em>Implementation</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Implementation</em>' attribute.
-	 * @see #isImplementation()
-	 * @generated
-	 */
-	void setImplementation(boolean value);
-
-	/**
-	 * Returns the value of the '<em><b>Archive Files</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.ArchiveFile}.
-	 * It is bidirectional and its opposite is '{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.ArchiveFile#getJSFLibrary <em>JSF Library</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Archive Files</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Archive Files</em>' containment reference list.
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistryPackage#getJSFLibrary_ArchiveFiles()
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.ArchiveFile#getJSFLibrary
-	 * @model type="org.eclipse.jst.jsf.core.internal.jsflibraryregistry.ArchiveFile" opposite="JSFLibrary" containment="true"
-	 * @generated
-	 */
-	EList getArchiveFiles();
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @model required="true" fullPathRequired="true"
-	 * @generated
-	 */
-	boolean containsArchiveFile(String fullPath);
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @model kind="operation" required="true"
-	 * @generated
-	 */
-	JSFLibrary getWorkingCopy();
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @model otherLibraryRequired="true"
-	 * @generated
-	 */
-	void updateValues(JSFLibrary otherLibrary);
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @model required="true" baseDestLocationRequired="true"
-	 * @generated
-	 */
-	boolean copyTo(String baseDestLocation);
-
-} // JSFLibrary
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/JSFLibraryRegistry.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/JSFLibraryRegistry.java
deleted file mode 100644
index dc2912b..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/JSFLibraryRegistry.java
+++ /dev/null
@@ -1,180 +0,0 @@
-/*******************************************************************************
- * 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:
- *    Ian Trimble - initial API and implementation
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.core.internal.jsflibraryregistry;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jst.jsf.core.internal.Messages;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>JSF Library Registry</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistry#getDefaultImplementationID <em>Default Implementation ID</em>}</li>
- *   <li>{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistry#getJSFLibraries <em>JSF Libraries</em>}</li>
- *   <li>{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistry#getPluginProvidedJSFLibraries <em>Plugin Provided JSF Libraries</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistryPackage#getJSFLibraryRegistry()
- * @model
- * @generated
- */
-public interface JSFLibraryRegistry extends EObject{
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	String copyright = "Copyright (c) 2005 Oracle Corporation";
-
-	/**
-	 * Returns the value of the '<em><b>Default Implementation ID</b></em>' attribute.
-	 * The default value is <code>""</code>.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Default Implementation ID</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Default Implementation ID</em>' attribute.
-	 * @see #setDefaultImplementationID(String)
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistryPackage#getJSFLibraryRegistry_DefaultImplementationID()
-	 * @model default=""
-	 * @generated
-	 */
-	String getDefaultImplementationID();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistry#getDefaultImplementationID <em>Default Implementation ID</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Default Implementation ID</em>' attribute.
-	 * @see #getDefaultImplementationID()
-	 * @generated
-	 */
-	void setDefaultImplementationID(String value);
-
-	public static final String DEFAULT_IMPL_LABEL = Messages.JSFLibraryRegistry_DEFAULT_IMPL_LABEL;
-
-	/**
-	 * Returns the value of the '<em><b>JSF Libraries</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>JSF Libraries</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>JSF Libraries</em>' containment reference list.
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistryPackage#getJSFLibraryRegistry_JSFLibraries()
-	 * @model type="org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary" containment="true"
-	 * @generated
-	 */
-	EList getJSFLibraries();
-
-	/**
-	 * Returns the value of the '<em><b>Plugin Provided JSF Libraries</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.PluginProvidedJSFLibrary}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Plugin Provided JSF Libraries</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Plugin Provided JSF Libraries</em>' containment reference list.
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistryPackage#getJSFLibraryRegistry_PluginProvidedJSFLibraries()
-	 * @model type="org.eclipse.jst.jsf.core.internal.jsflibraryregistry.PluginProvidedJSFLibrary" containment="true" transient="true"
-	 * @generated
-	 */
-	EList getPluginProvidedJSFLibraries();
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Default Implementation</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @model kind="operation" required="true"
-	 * @generated
-	 */
-	JSFLibrary getDefaultImplementation();
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @model implementationRequired="true"
-	 * @generated
-	 */
-	void setDefaultImplementation(JSFLibrary value);
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @model required="true" IDRequired="true"
-	 * @generated
-	 */
-	JSFLibrary getJSFLibraryByID(String ID);
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @model required="true" many="false" nameRequired="true"
-	 * @generated
-	 */
-	EList getJSFLibrariesByName(String name);
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @model kind="operation" required="true" many="false"
-	 * @generated
-	 */
-	EList getImplJSFLibraries();
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @model kind="operation" required="true" many="false"
-	 * @generated
-	 */
-	EList getNonImplJSFLibraries();
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @model kind="operation" required="true" many="false"
-	 * @generated
-	 */
-	EList getAllJSFLibraries();
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @model required="true" libraryRequired="true"
-	 * @generated
-	 */
-	boolean addJSFLibrary(JSFLibrary library);
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @model required="true" libraryRequired="true"
-	 * @generated
-	 */
-	boolean removeJSFLibrary(JSFLibrary library);
-
-} // JSFLibraryRegistry
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/JSFLibraryRegistryFactory.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/JSFLibraryRegistryFactory.java
deleted file mode 100644
index 0953c0e..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/JSFLibraryRegistryFactory.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * 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:
- *    Ian Trimble - initial API and implementation
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.core.internal.jsflibraryregistry;
-
-import org.eclipse.emf.ecore.EFactory;
-
-/**
- * <!-- begin-user-doc -->
- * The <b>Factory</b> for the model.
- * It provides a create method for each non-abstract class of the model.
- * <!-- end-user-doc -->
- * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistryPackage
- * @generated
- */
-public interface JSFLibraryRegistryFactory extends EFactory{
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	String copyright = "Copyright (c) 2005 Oracle Corporation";
-
-	/**
-	 * The singleton instance of the factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	JSFLibraryRegistryFactory eINSTANCE = new org.eclipse.jst.jsf.core.internal.jsflibraryregistry.impl.JSFLibraryRegistryFactoryImpl();
-
-	/**
-	 * Returns a new object of class '<em>JSF Library Registry</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>JSF Library Registry</em>'.
-	 * @generated
-	 */
-	JSFLibraryRegistry createJSFLibraryRegistry();
-
-	/**
-	 * Returns a new object of class '<em>JSF Library</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>JSF Library</em>'.
-	 * @generated
-	 */
-	JSFLibrary createJSFLibrary();
-
-	/**
-	 * Returns a new object of class '<em>Archive File</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Archive File</em>'.
-	 * @generated
-	 */
-	ArchiveFile createArchiveFile();
-
-	/**
-	 * Returns a new object of class '<em>Plugin Provided JSF Library</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Plugin Provided JSF Library</em>'.
-	 * @generated
-	 */
-	PluginProvidedJSFLibrary createPluginProvidedJSFLibrary();
-
-	/**
-	 * Returns the package supported by this factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the package supported by this factory.
-	 * @generated
-	 */
-	JSFLibraryRegistryPackage getJSFLibraryRegistryPackage();
-
-} //JSFLibraryRegistryFactory
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/JSFLibraryRegistryPackage.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/JSFLibraryRegistryPackage.java
deleted file mode 100644
index 3e00cb7..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/JSFLibraryRegistryPackage.java
+++ /dev/null
@@ -1,554 +0,0 @@
-/*******************************************************************************
- * 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:
- *    Ian Trimble - initial API and implementation
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.core.internal.jsflibraryregistry;
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EEnum;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EReference;
-
-/**
- * <!-- begin-user-doc -->
- * The <b>Package</b> for the model.
- * It contains accessors for the meta objects to represent
- * <ul>
- *   <li>each class,</li>
- *   <li>each feature of each class,</li>
- *   <li>each enum,</li>
- *   <li>and each data type</li>
- * </ul>
- * <!-- end-user-doc -->
- * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistryFactory
- * @model kind="package"
- * @generated
- */
-public interface JSFLibraryRegistryPackage extends EPackage{
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	String copyright = "Copyright (c) 2005 Oracle Corporation";
-
-	/**
-	 * The package name.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	String eNAME = "jsflibraryregistry";
-
-	/**
-	 * The package namespace URI.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	String eNS_URI = "http://www.eclipse.org/webtools/jsf/schema/jsflibraryregistry.xsd";
-
-	/**
-	 * The package namespace name.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	String eNS_PREFIX = "jsflibreg";
-
-	/**
-	 * The singleton instance of the package.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	JSFLibraryRegistryPackage eINSTANCE = org.eclipse.jst.jsf.core.internal.jsflibraryregistry.impl.JSFLibraryRegistryPackageImpl.init();
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.impl.JSFLibraryRegistryImpl <em>JSF Library Registry</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.impl.JSFLibraryRegistryImpl
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.impl.JSFLibraryRegistryPackageImpl#getJSFLibraryRegistry()
-	 * @generated
-	 */
-	int JSF_LIBRARY_REGISTRY = 0;
-
-	/**
-	 * The feature id for the '<em><b>Default Implementation ID</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int JSF_LIBRARY_REGISTRY__DEFAULT_IMPLEMENTATION_ID = 0;
-
-	/**
-	 * The feature id for the '<em><b>JSF Libraries</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int JSF_LIBRARY_REGISTRY__JSF_LIBRARIES = 1;
-
-	/**
-	 * The feature id for the '<em><b>Plugin Provided JSF Libraries</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int JSF_LIBRARY_REGISTRY__PLUGIN_PROVIDED_JSF_LIBRARIES = 2;
-
-	/**
-	 * The number of structural features of the the '<em>JSF Library Registry</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int JSF_LIBRARY_REGISTRY_FEATURE_COUNT = 3;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.impl.JSFLibraryImpl <em>JSF Library</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.impl.JSFLibraryImpl
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.impl.JSFLibraryRegistryPackageImpl#getJSFLibrary()
-	 * @generated
-	 */
-	int JSF_LIBRARY = 1;
-
-	/**
-	 * The feature id for the '<em><b>ID</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int JSF_LIBRARY__ID = 0;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int JSF_LIBRARY__NAME = 1;
-
-	/**
-	 * The feature id for the '<em><b>JSF Version</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int JSF_LIBRARY__JSF_VERSION = 2;
-
-	/**
-	 * The feature id for the '<em><b>Deployed</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int JSF_LIBRARY__DEPLOYED = 3;
-
-	/**
-	 * The feature id for the '<em><b>Implementation</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int JSF_LIBRARY__IMPLEMENTATION = 4;
-
-	/**
-	 * The feature id for the '<em><b>Archive Files</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int JSF_LIBRARY__ARCHIVE_FILES = 5;
-
-	/**
-	 * The number of structural features of the the '<em>JSF Library</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int JSF_LIBRARY_FEATURE_COUNT = 6;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.impl.ArchiveFileImpl <em>Archive File</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.impl.ArchiveFileImpl
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.impl.JSFLibraryRegistryPackageImpl#getArchiveFile()
-	 * @generated
-	 */
-	int ARCHIVE_FILE = 2;
-
-	/**
-	 * The feature id for the '<em><b>Relative To Workspace</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ARCHIVE_FILE__RELATIVE_TO_WORKSPACE = 0;
-
-	/**
-	 * The feature id for the '<em><b>Source Location</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ARCHIVE_FILE__SOURCE_LOCATION = 1;
-
-	/**
-	 * The feature id for the '<em><b>Relative Dest Location</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ARCHIVE_FILE__RELATIVE_DEST_LOCATION = 2;
-
-	/**
-	 * The feature id for the '<em><b>JSF Library</b></em>' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ARCHIVE_FILE__JSF_LIBRARY = 3;
-
-	/**
-	 * The number of structural features of the the '<em>Archive File</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ARCHIVE_FILE_FEATURE_COUNT = 4;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.impl.PluginProvidedJSFLibraryImpl <em>Plugin Provided JSF Library</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.impl.PluginProvidedJSFLibraryImpl
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.impl.JSFLibraryRegistryPackageImpl#getPluginProvidedJSFLibrary()
-	 * @generated
-	 */
-	int PLUGIN_PROVIDED_JSF_LIBRARY = 3;
-
-	/**
-	 * The feature id for the '<em><b>ID</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PLUGIN_PROVIDED_JSF_LIBRARY__ID = JSF_LIBRARY__ID;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PLUGIN_PROVIDED_JSF_LIBRARY__NAME = JSF_LIBRARY__NAME;
-
-	/**
-	 * The feature id for the '<em><b>JSF Version</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PLUGIN_PROVIDED_JSF_LIBRARY__JSF_VERSION = JSF_LIBRARY__JSF_VERSION;
-
-	/**
-	 * The feature id for the '<em><b>Deployed</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PLUGIN_PROVIDED_JSF_LIBRARY__DEPLOYED = JSF_LIBRARY__DEPLOYED;
-
-	/**
-	 * The feature id for the '<em><b>Implementation</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PLUGIN_PROVIDED_JSF_LIBRARY__IMPLEMENTATION = JSF_LIBRARY__IMPLEMENTATION;
-
-	/**
-	 * The feature id for the '<em><b>Archive Files</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PLUGIN_PROVIDED_JSF_LIBRARY__ARCHIVE_FILES = JSF_LIBRARY__ARCHIVE_FILES;
-
-	/**
-	 * The feature id for the '<em><b>Plugin ID</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PLUGIN_PROVIDED_JSF_LIBRARY__PLUGIN_ID = JSF_LIBRARY_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the the '<em>Plugin Provided JSF Library</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PLUGIN_PROVIDED_JSF_LIBRARY_FEATURE_COUNT = JSF_LIBRARY_FEATURE_COUNT + 1;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFVersion <em>JSF Version</em>}' enum.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFVersion
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.impl.JSFLibraryRegistryPackageImpl#getJSFVersion()
-	 * @generated
-	 */
-	int JSF_VERSION = 4;
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistry <em>JSF Library Registry</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>JSF Library Registry</em>'.
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistry
-	 * @generated
-	 */
-	EClass getJSFLibraryRegistry();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistry#getDefaultImplementationID <em>Default Implementation ID</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Default Implementation ID</em>'.
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistry#getDefaultImplementationID()
-	 * @see #getJSFLibraryRegistry()
-	 * @generated
-	 */
-	EAttribute getJSFLibraryRegistry_DefaultImplementationID();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistry#getJSFLibraries <em>JSF Libraries</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>JSF Libraries</em>'.
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistry#getJSFLibraries()
-	 * @see #getJSFLibraryRegistry()
-	 * @generated
-	 */
-	EReference getJSFLibraryRegistry_JSFLibraries();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistry#getPluginProvidedJSFLibraries <em>Plugin Provided JSF Libraries</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Plugin Provided JSF Libraries</em>'.
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistry#getPluginProvidedJSFLibraries()
-	 * @see #getJSFLibraryRegistry()
-	 * @generated
-	 */
-	EReference getJSFLibraryRegistry_PluginProvidedJSFLibraries();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary <em>JSF Library</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>JSF Library</em>'.
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary
-	 * @generated
-	 */
-	EClass getJSFLibrary();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary#getID <em>ID</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>ID</em>'.
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary#getID()
-	 * @see #getJSFLibrary()
-	 * @generated
-	 */
-	EAttribute getJSFLibrary_ID();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary#getName <em>Name</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Name</em>'.
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary#getName()
-	 * @see #getJSFLibrary()
-	 * @generated
-	 */
-	EAttribute getJSFLibrary_Name();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary#getJSFVersion <em>JSF Version</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>JSF Version</em>'.
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary#getJSFVersion()
-	 * @see #getJSFLibrary()
-	 * @generated
-	 */
-	EAttribute getJSFLibrary_JSFVersion();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary#isDeployed <em>Deployed</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Deployed</em>'.
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary#isDeployed()
-	 * @see #getJSFLibrary()
-	 * @generated
-	 */
-	EAttribute getJSFLibrary_Deployed();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary#isImplementation <em>Implementation</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Implementation</em>'.
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary#isImplementation()
-	 * @see #getJSFLibrary()
-	 * @generated
-	 */
-	EAttribute getJSFLibrary_Implementation();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary#getArchiveFiles <em>Archive Files</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Archive Files</em>'.
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary#getArchiveFiles()
-	 * @see #getJSFLibrary()
-	 * @generated
-	 */
-	EReference getJSFLibrary_ArchiveFiles();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.ArchiveFile <em>Archive File</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Archive File</em>'.
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.ArchiveFile
-	 * @generated
-	 */
-	EClass getArchiveFile();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.ArchiveFile#getSourceLocation <em>Source Location</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Source Location</em>'.
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.ArchiveFile#getSourceLocation()
-	 * @see #getArchiveFile()
-	 * @generated
-	 */
-	EAttribute getArchiveFile_SourceLocation();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.ArchiveFile#isRelativeToWorkspace <em>Relative To Workspace</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Relative To Workspace</em>'.
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.ArchiveFile#isRelativeToWorkspace()
-	 * @see #getArchiveFile()
-	 * @generated
-	 */
-	EAttribute getArchiveFile_RelativeToWorkspace();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.ArchiveFile#getRelativeDestLocation <em>Relative Dest Location</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Relative Dest Location</em>'.
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.ArchiveFile#getRelativeDestLocation()
-	 * @see #getArchiveFile()
-	 * @generated
-	 */
-	EAttribute getArchiveFile_RelativeDestLocation();
-
-	/**
-	 * Returns the meta object for the container reference '{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.ArchiveFile#getJSFLibrary <em>JSF Library</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the container reference '<em>JSF Library</em>'.
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.ArchiveFile#getJSFLibrary()
-	 * @see #getArchiveFile()
-	 * @generated
-	 */
-	EReference getArchiveFile_JSFLibrary();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.PluginProvidedJSFLibrary <em>Plugin Provided JSF Library</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Plugin Provided JSF Library</em>'.
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.PluginProvidedJSFLibrary
-	 * @generated
-	 */
-	EClass getPluginProvidedJSFLibrary();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.PluginProvidedJSFLibrary#getPluginID <em>Plugin ID</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Plugin ID</em>'.
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.PluginProvidedJSFLibrary#getPluginID()
-	 * @see #getPluginProvidedJSFLibrary()
-	 * @generated
-	 */
-	EAttribute getPluginProvidedJSFLibrary_PluginID();
-
-	/**
-	 * Returns the meta object for enum '{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFVersion <em>JSF Version</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for enum '<em>JSF Version</em>'.
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFVersion
-	 * @generated
-	 */
-	EEnum getJSFVersion();
-
-	/**
-	 * Returns the factory that creates the instances of the model.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the factory that creates the instances of the model.
-	 * @generated
-	 */
-	JSFLibraryRegistryFactory getJSFLibraryRegistryFactory();
-
-} //JSFLibraryRegistryPackage
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/JSFVersion.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/JSFVersion.java
deleted file mode 100644
index 1f77c4f..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/JSFVersion.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/*******************************************************************************
- * 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:
- *    Ian Trimble - initial API and implementation
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.core.internal.jsflibraryregistry;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.emf.common.util.AbstractEnumerator;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the literals of the enumeration '<em><b>JSF Version</b></em>',
- * and utility methods for working with them.
- * <!-- end-user-doc -->
- * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistryPackage#getJSFVersion()
- * @model
- * @generated
- */
-public final class JSFVersion extends AbstractEnumerator {
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final String copyright = "Copyright (c) 2005 Oracle Corporation";
-
-	/**
-	 * The '<em><b>V1 1</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>V1 1</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #V1_1_LITERAL
-	 * @model name="v1_1"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int V1_1 = 1;
-
-	/**
-	 * The '<em><b>V1 2</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>V1 2</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #V1_2_LITERAL
-	 * @model name="v1_2"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int V1_2 = 2;
-
-	/**
-	 * The '<em><b>UNKNOWN</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>UNKNOWN</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #UNKNOWN_LITERAL
-	 * @model
-	 * @generated
-	 * @ordered
-	 */
-	public static final int UNKNOWN = -1;
-
-	/**
-	 * The '<em><b>V1 1</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #V1_1
-	 * @generated
-	 * @ordered
-	 */
-	public static final JSFVersion V1_1_LITERAL = new JSFVersion(V1_1, "v1_1");
-
-	/**
-	 * The '<em><b>V1 2</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #V1_2
-	 * @generated
-	 * @ordered
-	 */
-	public static final JSFVersion V1_2_LITERAL = new JSFVersion(V1_2, "v1_2");
-
-	/**
-	 * The '<em><b>UNKNOWN</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #UNKNOWN
-	 * @generated
-	 * @ordered
-	 */
-	public static final JSFVersion UNKNOWN_LITERAL = new JSFVersion(UNKNOWN, "UNKNOWN");
-
-	/**
-	 * An array of all the '<em><b>JSF Version</b></em>' enumerators.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private static final JSFVersion[] VALUES_ARRAY =
-		new JSFVersion[] {
-			V1_1_LITERAL,
-			V1_2_LITERAL,
-			UNKNOWN_LITERAL,
-		};
-
-	/**
-	 * A public read-only list of all the '<em><b>JSF Version</b></em>' enumerators.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
-
-	/**
-	 * Returns the '<em><b>JSF Version</b></em>' literal with the specified name.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static JSFVersion get(String name) {
-		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
-			JSFVersion result = VALUES_ARRAY[i];
-			if (result.toString().equals(name)) {
-				return result;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the '<em><b>JSF Version</b></em>' literal with the specified value.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static JSFVersion get(int value) {
-		switch (value) {
-			case V1_1: return V1_1_LITERAL;
-			case V1_2: return V1_2_LITERAL;
-			case UNKNOWN: return UNKNOWN_LITERAL;
-		}
-		return null;	
-	}
-
-	/**
-	 * Only this class can construct instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private JSFVersion(int value, String name) {
-		super(value, name);
-	}
-
-	/**
-	 * Returns the '<em><b>JSF Version</b></em>' literal with the specified
-	 * name like the get(String) method does, but will return UNKNOWN instead
-	 * of null if the name is not recognized.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated NOT
-	 */
-	public static JSFVersion getJSFVersion(String name) {
-		JSFVersion version = get(name);
-		if (version == null) {
-			version = UNKNOWN_LITERAL;
-		}
-		return version;
-	}
-
-} //JSFVersion
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/PluginProvidedJSFLibrary.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/PluginProvidedJSFLibrary.java
deleted file mode 100644
index 5474d9d..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/PluginProvidedJSFLibrary.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * 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:
- *    Ian Trimble - initial API and implementation
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.core.internal.jsflibraryregistry;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Plugin Provided JSF Library</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.PluginProvidedJSFLibrary#getPluginID <em>Plugin ID</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistryPackage#getPluginProvidedJSFLibrary()
- * @model
- * @generated
- */
-public interface PluginProvidedJSFLibrary extends JSFLibrary{
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	String copyright = "Copyright (c) 2005 Oracle Corporation";
-
-	/**
-	 * Returns the value of the '<em><b>Plugin ID</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Plugin ID</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Plugin ID</em>' attribute.
-	 * @see #setPluginID(String)
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistryPackage#getPluginProvidedJSFLibrary_PluginID()
-	 * @model required="true"
-	 * @generated
-	 */
-	String getPluginID();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.PluginProvidedJSFLibrary#getPluginID <em>Plugin ID</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Plugin ID</em>' attribute.
-	 * @see #getPluginID()
-	 * @generated
-	 */
-	void setPluginID(String value);
-
-} // PluginProvidedJSFLibrary
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/adapter/MaintainDefaultImplementationAdapter.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/adapter/MaintainDefaultImplementationAdapter.java
deleted file mode 100644
index 0673b38..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/adapter/MaintainDefaultImplementationAdapter.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*******************************************************************************
- * 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:
- *    Ian Trimble - initial API and implementation
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.core.internal.jsflibraryregistry.adapter;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.jst.jsf.core.internal.JSFCorePlugin;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistry;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistryPackage;
-
-/**
- * EMF adapter that attempts to always maintain a default implementation
- * JSFLibrary upon addition and removal of JSFLibrary instances and upon
- * changing of a JSFLibrary instance's implementation property.
- * 
- * @author Ian Trimble - Oracle
- */
-public class MaintainDefaultImplementationAdapter extends AdapterImpl {
-
-	private static MaintainDefaultImplementationAdapter INSTANCE =
-		new MaintainDefaultImplementationAdapter();
-
-	/**
-	 * Gets the single instance of this adapter.
-	 * 
-	 * @return The single instance of this adapter.
-	 */
-	public static MaintainDefaultImplementationAdapter getInstance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Called to notify this adapter that a change has occured.
-	 * 
-	 * @param notification EMF Notification instance
-	 */
-	public void notifyChanged(Notification notification) {
-		Object objNotifier = notification.getNotifier();
-		if (objNotifier instanceof JSFLibraryRegistry) {
-			int eventType = notification.getEventType();
-			switch (eventType) {
-				case Notification.ADD:
-					Object objNewValue = notification.getNewValue();
-					if (objNewValue instanceof JSFLibrary) {
-						libraryAdded((JSFLibrary)objNewValue);
-					}
-					break;
-				case Notification.REMOVE:
-					Object objOldValue = notification.getOldValue();
-					if (objOldValue instanceof JSFLibrary) {
-						libraryRemoved((JSFLibrary)objOldValue);
-					}
-					break;
-			}
-		} else if (objNotifier instanceof JSFLibrary) {
-			if (notification.getFeatureID(JSFLibrary.class) == JSFLibraryRegistryPackage.JSF_LIBRARY__IMPLEMENTATION) {
-				implementationFlagSet((JSFLibrary)objNotifier);
-			}
-		}
-	}
-
-	/**
-	 * Checks if the library added is an implementation and, if so, makes it
-	 * the default implementation if it is the only implementation.
-	 * 
-	 * @param library JSFLibrary instance
-	 */
-	protected void libraryAdded(JSFLibrary library) {
-		if (library != null && library.isImplementation()) {
-			JSFLibraryRegistry jsfLibReg = JSFCorePlugin.getDefault().getJSFLibraryRegistry();
-			EList impls = jsfLibReg.getImplJSFLibraries();
-			if (impls.size() == 1) {
-				jsfLibReg.setDefaultImplementation(library);
-			}
-		}
-	}
-
-	/**
-	 * Checks if the library removed is the default implementation and, if so,
-	 * makes the first remaining implementation the new default or nulls out
-	 * the default implementation if no other implementation remains. 
-	 * 
-	 * @param library JSFLibrary instance
-	 */
-	protected void libraryRemoved(JSFLibrary library) {
-		if (library != null && library.isImplementation()) {
-			JSFLibraryRegistry jsfLibReg = JSFCorePlugin.getDefault().getJSFLibraryRegistry();
-			JSFLibrary defaultImpl = jsfLibReg.getDefaultImplementation(); 
-			if (defaultImpl == null || library.getID().equals(defaultImpl.getID())) { 
-				setNewDefaultImplementation();
-			}
-		}
-	}
-
-	/**
-	 * Checks if the implementation flag of the JSFLibrary has been changed
-	 * such that it is now eligible to become the default implementation or
-	 * such that it is no longer eligible as the default implementation and
-	 * sets the default implementation appropriately. Note that the passed
-	 * JSFLibrary instance must have been added to the model before calling
-	 * this method for it to have any effect.
-	 * 
-	 * @param library JSFLibrary instance
-	 */
-	protected void implementationFlagSet(JSFLibrary library) {
-		JSFLibraryRegistry jsfLibReg = JSFCorePlugin.getDefault().getJSFLibraryRegistry();
-		if (jsfLibReg != null) {
-			JSFLibrary defaultImpl = jsfLibReg.getDefaultImplementation();
-			if (
-					library.isImplementation() &&
-					defaultImpl == null
-			) {
-				jsfLibReg.setDefaultImplementation(library);
-			} else if (
-					!library.isImplementation() &&
-					(defaultImpl != null && library.getID() == defaultImpl.getID())
-			) {
-				setNewDefaultImplementation();
-			}
-		}
-	}
-
-	/**
-	 * Sets the first available JSFLibrary marked as an implementation as the
-	 * default implementation or sets the default implementation to null if no
-	 * JSFLibrary is marked as an implementation.
-	 */
-	protected void setNewDefaultImplementation() {
-		JSFLibraryRegistry jsfLibReg = JSFCorePlugin.getDefault().getJSFLibraryRegistry();
-		EList impls = jsfLibReg.getImplJSFLibraries();
-		if (impls.size() > 0) {
-			jsfLibReg.setDefaultImplementation((JSFLibrary)impls.get(0));
-		} else {
-			jsfLibReg.setDefaultImplementation(null);
-		}
-	}
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/impl/ArchiveFileImpl.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/impl/ArchiveFileImpl.java
deleted file mode 100644
index 279e86f..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/impl/ArchiveFileImpl.java
+++ /dev/null
@@ -1,659 +0,0 @@
-/*******************************************************************************
- * 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:
- *    Ian Trimble - initial API and implementation
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.core.internal.jsflibraryregistry.impl;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.URL;
-
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.EObjectImpl;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.jst.jsf.core.internal.JSFCorePlugin;
-import org.eclipse.jst.jsf.core.internal.Messages;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.ArchiveFile;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistryPackage;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.PluginProvidedJSFLibrary;
-import org.eclipse.osgi.util.NLS;
-import org.osgi.framework.Bundle;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Archive File</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- *   <li>{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.impl.ArchiveFileImpl#isRelativeToWorkspace <em>Relative To Workspace</em>}</li>
- *   <li>{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.impl.ArchiveFileImpl#getSourceLocation <em>Source Location</em>}</li>
- *   <li>{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.impl.ArchiveFileImpl#getRelativeDestLocation <em>Relative Dest Location</em>}</li>
- *   <li>{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.impl.ArchiveFileImpl#getJSFLibrary <em>JSF Library</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public class ArchiveFileImpl extends EObjectImpl implements ArchiveFile {
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final String copyright = "Copyright (c) 2005 Oracle Corporation";
-
-	/**
-	 * The default value of the '{@link #isRelativeToWorkspace() <em>Relative To Workspace</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #isRelativeToWorkspace()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final boolean RELATIVE_TO_WORKSPACE_EDEFAULT = true;
-
-	/**
-	 * The cached value of the '{@link #isRelativeToWorkspace() <em>Relative To Workspace</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #isRelativeToWorkspace()
-	 * @generated
-	 * @ordered
-	 */
-	protected boolean relativeToWorkspace = RELATIVE_TO_WORKSPACE_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getSourceLocation() <em>Source Location</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getSourceLocation()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String SOURCE_LOCATION_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getSourceLocation() <em>Source Location</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getSourceLocation()
-	 * @generated
-	 * @ordered
-	 */
-	protected String sourceLocation = SOURCE_LOCATION_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getRelativeDestLocation() <em>Relative Dest Location</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getRelativeDestLocation()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String RELATIVE_DEST_LOCATION_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getRelativeDestLocation() <em>Relative Dest Location</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getRelativeDestLocation()
-	 * @generated
-	 * @ordered
-	 */
-	protected String relativeDestLocation = RELATIVE_DEST_LOCATION_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ArchiveFileImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected EClass eStaticClass() {
-		return JSFLibraryRegistryPackage.eINSTANCE.getArchiveFile();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getSourceLocation() {
-		return sourceLocation;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * Enhanced to not only set the location but also to attempt to determine
-	 * if the location passed is relative to the current workspace. If so, only
-	 * the relative location is stored. If not, the full location as passed is
-	 * stored and the relativeToWorkspace property is set to false. To override
-	 * this behaviour and set the absolute location as passed regardless, call
-	 * setRelativeToWorkspace(false) BEFORE calling this method.
-	 *  
-	 * <!-- end-user-doc -->
-	 * @generated NOT
-	 */
-	public void setSourceLocation(String newSourceLocation) {
-		String oldSourceLocation = sourceLocation;
-		if (relativeToWorkspace) {
-			IWorkspaceRoot workspaceRoot = getWorkspaceRoot();
-			if (workspaceRoot != null) {
-				IPath wsRootPath = workspaceRoot.getLocation();
-				IPath srcPath = new Path(newSourceLocation);
-				if (workspaceRoot.findMember(srcPath) != null) {
-					sourceLocation = newSourceLocation;
-				} else if (wsRootPath.isPrefixOf(srcPath)) {
-					int segmentsMatched = wsRootPath.matchingFirstSegments(srcPath);
-					srcPath = srcPath.removeFirstSegments(segmentsMatched).setDevice(null);
-					sourceLocation = srcPath.toOSString();
-				} else {
-					sourceLocation = newSourceLocation;
-					relativeToWorkspace = false;
-				}
-			}
-		} else {
-			sourceLocation = newSourceLocation;
-		}
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, JSFLibraryRegistryPackage.ARCHIVE_FILE__SOURCE_LOCATION, oldSourceLocation, sourceLocation));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public boolean isRelativeToWorkspace() {
-		return relativeToWorkspace;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * To override workspace-relative recognition behaviour, be sure to call
-	 * this method with a false value BEFORE calling setLocation(String).
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setRelativeToWorkspace(boolean newRelativeToWorkspace) {
-		boolean oldRelativeToWorkspace = relativeToWorkspace;
-		relativeToWorkspace = newRelativeToWorkspace;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, JSFLibraryRegistryPackage.ARCHIVE_FILE__RELATIVE_TO_WORKSPACE, oldRelativeToWorkspace, relativeToWorkspace));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getRelativeDestLocation() {
-		return relativeDestLocation;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setRelativeDestLocation(String newRelativeDestLocation) {
-		String oldRelativeDestLocation = relativeDestLocation;
-		relativeDestLocation = newRelativeDestLocation;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, JSFLibraryRegistryPackage.ARCHIVE_FILE__RELATIVE_DEST_LOCATION, oldRelativeDestLocation, relativeDestLocation));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public JSFLibrary getJSFLibrary() {
-		if (eContainerFeatureID != JSFLibraryRegistryPackage.ARCHIVE_FILE__JSF_LIBRARY) return null;
-		return (JSFLibrary)eContainer;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setJSFLibrary(JSFLibrary newJSFLibrary) {
-		if (newJSFLibrary != eContainer || (eContainerFeatureID != JSFLibraryRegistryPackage.ARCHIVE_FILE__JSF_LIBRARY && newJSFLibrary != null)) {
-			if (EcoreUtil.isAncestor(this, newJSFLibrary))
-				throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
-			NotificationChain msgs = null;
-			if (eContainer != null)
-				msgs = eBasicRemoveFromContainer(msgs);
-			if (newJSFLibrary != null)
-				msgs = ((InternalEObject)newJSFLibrary).eInverseAdd(this, JSFLibraryRegistryPackage.JSF_LIBRARY__ARCHIVE_FILES, JSFLibrary.class, msgs);
-			msgs = eBasicSetContainer((InternalEObject)newJSFLibrary, JSFLibraryRegistryPackage.ARCHIVE_FILE__JSF_LIBRARY, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, JSFLibraryRegistryPackage.ARCHIVE_FILE__JSF_LIBRARY, newJSFLibrary, newJSFLibrary));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated NOT
-	 */
-	public String getPath() {
-		String path = null;
-		String resolvedSourceLocation = getResolvedSourceLocation();
-		if (resolvedSourceLocation != null) {
-			int iPos = resolvedSourceLocation.lastIndexOf('/');
-			if (iPos < 0) {
-				iPos = resolvedSourceLocation.lastIndexOf('\\');
-			}
-			if (iPos < 1) {
-				path = ""; //$NON-NLS-1$
-			} else {
-				path = resolvedSourceLocation.substring(0, iPos);
-			}
-		}
-		return path;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated NOT
-	 */
-	public String getName() {
-		String name = null;
-		String resolvedSourceLocation = getResolvedSourceLocation();
-		if (resolvedSourceLocation != null) {
-			int iPos = resolvedSourceLocation.lastIndexOf('/');
-			if (iPos < 0) {
-				iPos = resolvedSourceLocation.lastIndexOf('\\');
-			}
-			if (iPos < 0 || iPos == resolvedSourceLocation.length() - 1) {
-				name = resolvedSourceLocation;
-			} else {
-				name = resolvedSourceLocation.substring(iPos + 1);
-			}
-		}
-		return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated NOT
-	 */
-	public boolean exists() {
-		boolean exists = false;
-		if (getJSFLibrary() instanceof PluginProvidedJSFLibrary) {
-			Bundle bundle = getBundle();
-			if (bundle != null) {
-				exists = bundle.getEntry(sourceLocation) != null;
-			}
-		} else {
-			String resolvedSourceLocation = getResolvedSourceLocation();
-			if (resolvedSourceLocation != null) {
-				exists = new File(resolvedSourceLocation).exists();
-			}
-		}
-		return exists;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated NOT
-	 */
-	public boolean equals(Object object) {
-		boolean equal = false;
-		if (object != null && object instanceof ArchiveFile) {
-			String resolvedSourceLocation = getResolvedSourceLocation();
-			String objResolvedSourceLocation = ((ArchiveFile)object).getResolvedSourceLocation();
-			if (resolvedSourceLocation == null && objResolvedSourceLocation == null) {
-				equal = true;
-			} else if (resolvedSourceLocation != null) {
-				equal = resolvedSourceLocation.equals(objResolvedSourceLocation);
-			}
-		}
-		return equal;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated NOT
-	 */
-	public int hashCode() {
-		return getResolvedSourceLocation() != null ? getResolvedSourceLocation().hashCode() : 0;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated NOT
-	 */
-	public boolean copyTo(String baseDestLocation) {
-		boolean copied = false;
-		InputStream in = null;
-		OutputStream out = null;
-		IPath outPath = new Path(baseDestLocation);
-		if (relativeDestLocation != null) {
-			outPath = outPath.append(relativeDestLocation);
-		}
-		outPath = outPath.append(getName());
-		try {
-			if (!outPath.toFile().exists()) {
-				out = new FileOutputStream(outPath.toOSString());
-			} else {
-				return copied;
-			}
-			if (getJSFLibrary() instanceof PluginProvidedJSFLibrary) {
-				Bundle bundle = getBundle();
-				URL inURL = bundle.getEntry(sourceLocation);
-				if (inURL != null) {
-					in = inURL.openStream();
-				} else {
-					JSFCorePlugin.log(
-							IStatus.ERROR,
-							NLS.bind(Messages.ArchiveFileImpl_CannotLocatePluginRelativeFile,
-									sourceLocation));
-					return copied;
-				}
-			} else {
-				in = new FileInputStream(getResolvedSourceLocation());
-			}
-			byte[] buf = new byte[1024];
-			int len = 0;
-			while ((len = in.read(buf)) > 0) {
-				out.write(buf, 0, len);
-			}
-			copied = true;
-		} catch(FileNotFoundException fnfe) {
-			JSFCorePlugin.log(IStatus.ERROR, Messages.ArchiveFileImpl_CannotCopyFile, fnfe);
-		} catch(IOException ioe) {
-			JSFCorePlugin.log(IStatus.ERROR, Messages.ArchiveFileImpl_CannotCopyFile, ioe);
-		} finally {
-			try {
-				if (in != null) {
-					in.close();
-				}
-				if (out != null) {
-					out.close();
-				}
-			} catch(IOException ioe) {
-				JSFCorePlugin.log(IStatus.WARNING, Messages.ArchiveFileImpl_CannotCloseFile, ioe);
-			}
-		}
-		return copied;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated NOT
-	 */
-	public String getResolvedSourceLocation() {
-		String resolvedSourceLocation = null;
-		if (getJSFLibrary() instanceof PluginProvidedJSFLibrary) {
-			Bundle bundle = getBundle();
-			if (bundle != null) {
-				String bundleLocation= bundle.getLocation();
-				if (bundleLocation != null) {
-					resolvedSourceLocation = appendSeparator(bundleLocation) + sourceLocation; 
-				} else {
-					resolvedSourceLocation = sourceLocation;
-				}
-			} else {
-				resolvedSourceLocation = sourceLocation;
-			}
-		} else {
-			if (isRelativeToWorkspace()) {
-				IWorkspaceRoot workspaceRoot = getWorkspaceRoot();
-				if (workspaceRoot != null) {
-					String workspaceLocation = workspaceRoot.getLocation().toOSString();
-					if (workspaceLocation != null) {
-						resolvedSourceLocation = appendSeparator(workspaceLocation) + sourceLocation;
-					} else {
-						resolvedSourceLocation = sourceLocation;
-					}
-				} else {
-					resolvedSourceLocation = sourceLocation;
-				}
-			} else {
-				resolvedSourceLocation = sourceLocation;
-			}
-		}
-		return resolvedSourceLocation;
-	}
-
-	/**
-	 * Gets the Bundle instance by parent PluginProvidedJSFLibrary instance's
-	 * pluginID property, if and only if the parent JSFLibrary instance IS a
-	 * PluginProvidedJSFLibrary, else returns null.
-	 * @return Bundle instance, or null if not located or applicable
-	 */
-	protected Bundle getBundle() {
-		Bundle bundle = null;
-		if (getJSFLibrary() instanceof PluginProvidedJSFLibrary) {
-			String pluginID = ((PluginProvidedJSFLibrary)getJSFLibrary()).getPluginID();
-			if (pluginID != null) {
-				bundle = Platform.getBundle(pluginID);
-			}
-		}
-		return bundle;
-	}
-
-	/**
-	 * Gets the IWorkspaceRoot instance. 
-	 * @return IWorkspaceRoot instance
-	 */
-	protected IWorkspaceRoot getWorkspaceRoot() {
-		IWorkspaceRoot workspaceRoot = null;
-		IWorkspace workspace = ResourcesPlugin.getWorkspace();
-		if (workspace != null) {
-			workspaceRoot = workspace.getRoot();
-		}
-		return workspaceRoot;
-	}
-
-	protected String appendSeparator(String path) {
-		String newPath = null;
-		if (!path.endsWith("\\") && !path.endsWith("/")) { //$NON-NLS-1$ //$NON-NLS-2$
-			newPath = path + System.getProperty("file.separator"); //$NON-NLS-1$
-		} else {
-			newPath = path;
-		}
-		return newPath;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs) {
-		if (featureID >= 0) {
-			switch (eDerivedStructuralFeatureID(featureID, baseClass)) {
-				case JSFLibraryRegistryPackage.ARCHIVE_FILE__JSF_LIBRARY:
-					if (eContainer != null)
-						msgs = eBasicRemoveFromContainer(msgs);
-					return eBasicSetContainer(otherEnd, JSFLibraryRegistryPackage.ARCHIVE_FILE__JSF_LIBRARY, msgs);
-				default:
-					return eDynamicInverseAdd(otherEnd, featureID, baseClass, msgs);
-			}
-		}
-		if (eContainer != null)
-			msgs = eBasicRemoveFromContainer(msgs);
-		return eBasicSetContainer(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs) {
-		if (featureID >= 0) {
-			switch (eDerivedStructuralFeatureID(featureID, baseClass)) {
-				case JSFLibraryRegistryPackage.ARCHIVE_FILE__JSF_LIBRARY:
-					return eBasicSetContainer(null, JSFLibraryRegistryPackage.ARCHIVE_FILE__JSF_LIBRARY, msgs);
-				default:
-					return eDynamicInverseRemove(otherEnd, featureID, baseClass, msgs);
-			}
-		}
-		return eBasicSetContainer(null, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) {
-		if (eContainerFeatureID >= 0) {
-			switch (eContainerFeatureID) {
-				case JSFLibraryRegistryPackage.ARCHIVE_FILE__JSF_LIBRARY:
-					return eContainer.eInverseRemove(this, JSFLibraryRegistryPackage.JSF_LIBRARY__ARCHIVE_FILES, JSFLibrary.class, msgs);
-				default:
-					return eDynamicBasicRemoveFromContainer(msgs);
-			}
-		}
-		return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE - eContainerFeatureID, null, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Object eGet(EStructuralFeature eFeature, boolean resolve) {
-		switch (eDerivedStructuralFeatureID(eFeature)) {
-			case JSFLibraryRegistryPackage.ARCHIVE_FILE__RELATIVE_TO_WORKSPACE:
-				return isRelativeToWorkspace() ? Boolean.TRUE : Boolean.FALSE;
-			case JSFLibraryRegistryPackage.ARCHIVE_FILE__SOURCE_LOCATION:
-				return getSourceLocation();
-			case JSFLibraryRegistryPackage.ARCHIVE_FILE__RELATIVE_DEST_LOCATION:
-				return getRelativeDestLocation();
-			case JSFLibraryRegistryPackage.ARCHIVE_FILE__JSF_LIBRARY:
-				return getJSFLibrary();
-		}
-		return eDynamicGet(eFeature, resolve);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void eSet(EStructuralFeature eFeature, Object newValue) {
-		switch (eDerivedStructuralFeatureID(eFeature)) {
-			case JSFLibraryRegistryPackage.ARCHIVE_FILE__RELATIVE_TO_WORKSPACE:
-				setRelativeToWorkspace(((Boolean)newValue).booleanValue());
-				return;
-			case JSFLibraryRegistryPackage.ARCHIVE_FILE__SOURCE_LOCATION:
-				setSourceLocation((String)newValue);
-				return;
-			case JSFLibraryRegistryPackage.ARCHIVE_FILE__RELATIVE_DEST_LOCATION:
-				setRelativeDestLocation((String)newValue);
-				return;
-			case JSFLibraryRegistryPackage.ARCHIVE_FILE__JSF_LIBRARY:
-				setJSFLibrary((JSFLibrary)newValue);
-				return;
-		}
-		eDynamicSet(eFeature, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void eUnset(EStructuralFeature eFeature) {
-		switch (eDerivedStructuralFeatureID(eFeature)) {
-			case JSFLibraryRegistryPackage.ARCHIVE_FILE__RELATIVE_TO_WORKSPACE:
-				setRelativeToWorkspace(RELATIVE_TO_WORKSPACE_EDEFAULT);
-				return;
-			case JSFLibraryRegistryPackage.ARCHIVE_FILE__SOURCE_LOCATION:
-				setSourceLocation(SOURCE_LOCATION_EDEFAULT);
-				return;
-			case JSFLibraryRegistryPackage.ARCHIVE_FILE__RELATIVE_DEST_LOCATION:
-				setRelativeDestLocation(RELATIVE_DEST_LOCATION_EDEFAULT);
-				return;
-			case JSFLibraryRegistryPackage.ARCHIVE_FILE__JSF_LIBRARY:
-				setJSFLibrary((JSFLibrary)null);
-				return;
-		}
-		eDynamicUnset(eFeature);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public boolean eIsSet(EStructuralFeature eFeature) {
-		switch (eDerivedStructuralFeatureID(eFeature)) {
-			case JSFLibraryRegistryPackage.ARCHIVE_FILE__RELATIVE_TO_WORKSPACE:
-				return relativeToWorkspace != RELATIVE_TO_WORKSPACE_EDEFAULT;
-			case JSFLibraryRegistryPackage.ARCHIVE_FILE__SOURCE_LOCATION:
-				return SOURCE_LOCATION_EDEFAULT == null ? sourceLocation != null : !SOURCE_LOCATION_EDEFAULT.equals(sourceLocation);
-			case JSFLibraryRegistryPackage.ARCHIVE_FILE__RELATIVE_DEST_LOCATION:
-				return RELATIVE_DEST_LOCATION_EDEFAULT == null ? relativeDestLocation != null : !RELATIVE_DEST_LOCATION_EDEFAULT.equals(relativeDestLocation);
-			case JSFLibraryRegistryPackage.ARCHIVE_FILE__JSF_LIBRARY:
-				return getJSFLibrary() != null;
-		}
-		return eDynamicIsSet(eFeature);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (RelativeToWorkspace: ");
-		result.append(relativeToWorkspace);
-		result.append(", SourceLocation: ");
-		result.append(sourceLocation);
-		result.append(", RelativeDestLocation: ");
-		result.append(relativeDestLocation);
-		result.append(')');
-		return result.toString();
-	}
-
-} //ArchiveFileImpl
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/impl/JSFLibraryImpl.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/impl/JSFLibraryImpl.java
deleted file mode 100644
index 2986563..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/impl/JSFLibraryImpl.java
+++ /dev/null
@@ -1,560 +0,0 @@
-/*******************************************************************************
- * 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:
- *    Ian Trimble - initial API and implementation
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.core.internal.jsflibraryregistry.impl;
-
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.EObjectImpl;
-import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.ArchiveFile;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistryFactory;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistryPackage;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFVersion;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.adapter.MaintainDefaultImplementationAdapter;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>JSF Library</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- *   <li>{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.impl.JSFLibraryImpl#getID <em>ID</em>}</li>
- *   <li>{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.impl.JSFLibraryImpl#getName <em>Name</em>}</li>
- *   <li>{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.impl.JSFLibraryImpl#getJSFVersion <em>JSF Version</em>}</li>
- *   <li>{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.impl.JSFLibraryImpl#isDeployed <em>Deployed</em>}</li>
- *   <li>{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.impl.JSFLibraryImpl#isImplementation <em>Implementation</em>}</li>
- *   <li>{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.impl.JSFLibraryImpl#getArchiveFiles <em>Archive Files</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public class JSFLibraryImpl extends EObjectImpl implements JSFLibrary {
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final String copyright = "Copyright (c) 2005 Oracle Corporation";
-
-	/**
-	 * The default value of the '{@link #getID() <em>ID</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getID()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String ID_EDEFAULT = "";
-
-	/**
-	 * The cached value of the '{@link #getID() <em>ID</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getID()
-	 * @generated
-	 * @ordered
-	 */
-	protected String id = ID_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String name = NAME_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getJSFVersion() <em>JSF Version</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getJSFVersion()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final JSFVersion JSF_VERSION_EDEFAULT = JSFVersion.UNKNOWN_LITERAL;
-
-	/**
-	 * The cached value of the '{@link #getJSFVersion() <em>JSF Version</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getJSFVersion()
-	 * @generated
-	 * @ordered
-	 */
-	protected JSFVersion jsfVersion = JSF_VERSION_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #isDeployed() <em>Deployed</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #isDeployed()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final boolean DEPLOYED_EDEFAULT = true;
-
-	/**
-	 * The cached value of the '{@link #isDeployed() <em>Deployed</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #isDeployed()
-	 * @generated
-	 * @ordered
-	 */
-	protected boolean deployed = DEPLOYED_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #isImplementation() <em>Implementation</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #isImplementation()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final boolean IMPLEMENTATION_EDEFAULT = false;
-
-	/**
-	 * The cached value of the '{@link #isImplementation() <em>Implementation</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #isImplementation()
-	 * @generated
-	 * @ordered
-	 */
-	protected boolean implementation = IMPLEMENTATION_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getArchiveFiles() <em>Archive Files</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getArchiveFiles()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList archiveFiles = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * Enhanced to not only create an instance but also to set an initial ID
-	 * (which can be reset later) and to add the
-	 * MaintainDefaultImplementationAdapter to the list of adapters.
-	 * <!-- end-user-doc -->
-	 * @generated NOT
-	 */
-	protected JSFLibraryImpl() {
-		super();
-		//set initial ID; will be overwritten from XML if already persisted
-		setID(String.valueOf(System.currentTimeMillis()));
-		//add adapter to maintain a default implementation
-		eAdapters().add(MaintainDefaultImplementationAdapter.getInstance());
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected EClass eStaticClass() {
-		return JSFLibraryRegistryPackage.eINSTANCE.getJSFLibrary();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getID() {
-		return id;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setID(String newID) {
-		String oldID = id;
-		id = newID;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, JSFLibraryRegistryPackage.JSF_LIBRARY__ID, oldID, id));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setName(String newName) {
-		String oldName = name;
-		name = newName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, JSFLibraryRegistryPackage.JSF_LIBRARY__NAME, oldName, name));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public JSFVersion getJSFVersion() {
-		return jsfVersion;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setJSFVersion(JSFVersion newJSFVersion) {
-		JSFVersion oldJSFVersion = jsfVersion;
-		jsfVersion = newJSFVersion == null ? JSF_VERSION_EDEFAULT : newJSFVersion;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, JSFLibraryRegistryPackage.JSF_LIBRARY__JSF_VERSION, oldJSFVersion, jsfVersion));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public boolean isDeployed() {
-		return deployed;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setDeployed(boolean newDeployed) {
-		boolean oldDeployed = deployed;
-		deployed = newDeployed;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, JSFLibraryRegistryPackage.JSF_LIBRARY__DEPLOYED, oldDeployed, deployed));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public boolean isImplementation() {
-		return implementation;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setImplementation(boolean newImplementation) {
-		boolean oldImplementation = implementation;
-		implementation = newImplementation;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, JSFLibraryRegistryPackage.JSF_LIBRARY__IMPLEMENTATION, oldImplementation, implementation));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EList getArchiveFiles() {
-		if (archiveFiles == null) {
-			archiveFiles = new EObjectContainmentWithInverseEList(ArchiveFile.class, this, JSFLibraryRegistryPackage.JSF_LIBRARY__ARCHIVE_FILES, JSFLibraryRegistryPackage.ARCHIVE_FILE__JSF_LIBRARY);
-		}
-		return archiveFiles;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated NOT
-	 */
-	public boolean containsArchiveFile(String fullPath) {
-		boolean contains = false;
-		if (fullPath != null) {
-			Iterator itArchiveFiles = getArchiveFiles().iterator();
-			while (itArchiveFiles.hasNext()) {
-				ArchiveFile archiveFile = (ArchiveFile)itArchiveFiles.next();
-				if (fullPath.equals(archiveFile.getResolvedSourceLocation())) {
-					contains = true;
-					break;
-				}
-			}
-		}
-		return contains;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated NOT
-	 */
-	public JSFLibrary getWorkingCopy() {
-		JSFLibrary workingCopyLib = JSFLibraryRegistryFactory.eINSTANCE.createJSFLibrary();
-		workingCopyLib.setID(getID());
-		workingCopyLib.setName(getName());
-		workingCopyLib.setJSFVersion(getJSFVersion());
-		workingCopyLib.setDeployed(isDeployed());
-		workingCopyLib.setImplementation(isImplementation());
-		Iterator itArchiveFiles = getArchiveFiles().iterator();
-		while (itArchiveFiles.hasNext()) {
-			ArchiveFile srcArchiveFile = (ArchiveFile)itArchiveFiles.next();
-			ArchiveFile destArchiveFile = JSFLibraryRegistryFactory.eINSTANCE.createArchiveFile();
-			destArchiveFile.setRelativeToWorkspace(srcArchiveFile.isRelativeToWorkspace());
-			destArchiveFile.setSourceLocation(srcArchiveFile.getSourceLocation());
-			destArchiveFile.setRelativeDestLocation(srcArchiveFile.getRelativeDestLocation());
-			workingCopyLib.getArchiveFiles().add(destArchiveFile);
-		}
-		return workingCopyLib;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated NOT
-	 */
-	public void updateValues(JSFLibrary otherLibrary) {
-		if (otherLibrary != null) {
-			setID(otherLibrary.getID());
-			setName(otherLibrary.getName());
-			setJSFVersion(otherLibrary.getJSFVersion());
-			setDeployed(otherLibrary.isDeployed());
-			setImplementation(otherLibrary.isImplementation());
-			Iterator itArchiveFiles = otherLibrary.getArchiveFiles().iterator();
-			getArchiveFiles().clear();
-			while (itArchiveFiles.hasNext()) {
-				ArchiveFile srcArchiveFile = (ArchiveFile)itArchiveFiles.next();
-				ArchiveFile destArchiveFile = JSFLibraryRegistryFactory.eINSTANCE.createArchiveFile();
-				destArchiveFile.setRelativeToWorkspace(srcArchiveFile.isRelativeToWorkspace());
-				destArchiveFile.setSourceLocation(srcArchiveFile.getSourceLocation());
-				destArchiveFile.setRelativeDestLocation(srcArchiveFile.getRelativeDestLocation());
-				getArchiveFiles().add(destArchiveFile);
-			}
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated NOT
-	 */
-	public boolean copyTo(String baseDestLocation) {
-		boolean allCopied = true;
-		Iterator itFiles = getArchiveFiles().iterator();
-		while (itFiles.hasNext()) {
-			ArchiveFile archiveFile = (ArchiveFile)itFiles.next();
-			boolean copied = archiveFile.copyTo(baseDestLocation);
-			allCopied = allCopied && copied;
-		}
-		return allCopied;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs) {
-		if (featureID >= 0) {
-			switch (eDerivedStructuralFeatureID(featureID, baseClass)) {
-				case JSFLibraryRegistryPackage.JSF_LIBRARY__ARCHIVE_FILES:
-					return ((InternalEList)getArchiveFiles()).basicAdd(otherEnd, msgs);
-				default:
-					return eDynamicInverseAdd(otherEnd, featureID, baseClass, msgs);
-			}
-		}
-		if (eContainer != null)
-			msgs = eBasicRemoveFromContainer(msgs);
-		return eBasicSetContainer(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs) {
-		if (featureID >= 0) {
-			switch (eDerivedStructuralFeatureID(featureID, baseClass)) {
-				case JSFLibraryRegistryPackage.JSF_LIBRARY__ARCHIVE_FILES:
-					return ((InternalEList)getArchiveFiles()).basicRemove(otherEnd, msgs);
-				default:
-					return eDynamicInverseRemove(otherEnd, featureID, baseClass, msgs);
-			}
-		}
-		return eBasicSetContainer(null, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Object eGet(EStructuralFeature eFeature, boolean resolve) {
-		switch (eDerivedStructuralFeatureID(eFeature)) {
-			case JSFLibraryRegistryPackage.JSF_LIBRARY__ID:
-				return getID();
-			case JSFLibraryRegistryPackage.JSF_LIBRARY__NAME:
-				return getName();
-			case JSFLibraryRegistryPackage.JSF_LIBRARY__JSF_VERSION:
-				return getJSFVersion();
-			case JSFLibraryRegistryPackage.JSF_LIBRARY__DEPLOYED:
-				return isDeployed() ? Boolean.TRUE : Boolean.FALSE;
-			case JSFLibraryRegistryPackage.JSF_LIBRARY__IMPLEMENTATION:
-				return isImplementation() ? Boolean.TRUE : Boolean.FALSE;
-			case JSFLibraryRegistryPackage.JSF_LIBRARY__ARCHIVE_FILES:
-				return getArchiveFiles();
-		}
-		return eDynamicGet(eFeature, resolve);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void eSet(EStructuralFeature eFeature, Object newValue) {
-		switch (eDerivedStructuralFeatureID(eFeature)) {
-			case JSFLibraryRegistryPackage.JSF_LIBRARY__ID:
-				setID((String)newValue);
-				return;
-			case JSFLibraryRegistryPackage.JSF_LIBRARY__NAME:
-				setName((String)newValue);
-				return;
-			case JSFLibraryRegistryPackage.JSF_LIBRARY__JSF_VERSION:
-				setJSFVersion((JSFVersion)newValue);
-				return;
-			case JSFLibraryRegistryPackage.JSF_LIBRARY__DEPLOYED:
-				setDeployed(((Boolean)newValue).booleanValue());
-				return;
-			case JSFLibraryRegistryPackage.JSF_LIBRARY__IMPLEMENTATION:
-				setImplementation(((Boolean)newValue).booleanValue());
-				return;
-			case JSFLibraryRegistryPackage.JSF_LIBRARY__ARCHIVE_FILES:
-				getArchiveFiles().clear();
-				getArchiveFiles().addAll((Collection)newValue);
-				return;
-		}
-		eDynamicSet(eFeature, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void eUnset(EStructuralFeature eFeature) {
-		switch (eDerivedStructuralFeatureID(eFeature)) {
-			case JSFLibraryRegistryPackage.JSF_LIBRARY__ID:
-				setID(ID_EDEFAULT);
-				return;
-			case JSFLibraryRegistryPackage.JSF_LIBRARY__NAME:
-				setName(NAME_EDEFAULT);
-				return;
-			case JSFLibraryRegistryPackage.JSF_LIBRARY__JSF_VERSION:
-				setJSFVersion(JSF_VERSION_EDEFAULT);
-				return;
-			case JSFLibraryRegistryPackage.JSF_LIBRARY__DEPLOYED:
-				setDeployed(DEPLOYED_EDEFAULT);
-				return;
-			case JSFLibraryRegistryPackage.JSF_LIBRARY__IMPLEMENTATION:
-				setImplementation(IMPLEMENTATION_EDEFAULT);
-				return;
-			case JSFLibraryRegistryPackage.JSF_LIBRARY__ARCHIVE_FILES:
-				getArchiveFiles().clear();
-				return;
-		}
-		eDynamicUnset(eFeature);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public boolean eIsSet(EStructuralFeature eFeature) {
-		switch (eDerivedStructuralFeatureID(eFeature)) {
-			case JSFLibraryRegistryPackage.JSF_LIBRARY__ID:
-				return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
-			case JSFLibraryRegistryPackage.JSF_LIBRARY__NAME:
-				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-			case JSFLibraryRegistryPackage.JSF_LIBRARY__JSF_VERSION:
-				return jsfVersion != JSF_VERSION_EDEFAULT;
-			case JSFLibraryRegistryPackage.JSF_LIBRARY__DEPLOYED:
-				return deployed != DEPLOYED_EDEFAULT;
-			case JSFLibraryRegistryPackage.JSF_LIBRARY__IMPLEMENTATION:
-				return implementation != IMPLEMENTATION_EDEFAULT;
-			case JSFLibraryRegistryPackage.JSF_LIBRARY__ARCHIVE_FILES:
-				return archiveFiles != null && !archiveFiles.isEmpty();
-		}
-		return eDynamicIsSet(eFeature);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (ID: ");
-		result.append(id);
-		result.append(", Name: ");
-		result.append(name);
-		result.append(", JSFVersion: ");
-		result.append(jsfVersion);
-		result.append(", Deployed: ");
-		result.append(deployed);
-		result.append(", Implementation: ");
-		result.append(implementation);
-		result.append(')');
-		return result.toString();
-	}
-
-} //JSFLibraryImpl
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/impl/JSFLibraryRegistryFactoryImpl.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/impl/JSFLibraryRegistryFactoryImpl.java
deleted file mode 100644
index d7ce56e..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/impl/JSFLibraryRegistryFactoryImpl.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*******************************************************************************
- * 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:
- *    Ian Trimble - initial API and implementation
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.core.internal.jsflibraryregistry.impl;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EDataType;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.impl.EFactoryImpl;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.ArchiveFile;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistry;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistryFactory;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistryPackage;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFVersion;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.PluginProvidedJSFLibrary;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model <b>Factory</b>.
- * <!-- end-user-doc -->
- * @generated
- */
-public class JSFLibraryRegistryFactoryImpl extends EFactoryImpl implements JSFLibraryRegistryFactory {
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final String copyright = "Copyright (c) 2005 Oracle Corporation";
-
-	/**
-	 * Creates an instance of the factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public JSFLibraryRegistryFactoryImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EObject create(EClass eClass) {
-		switch (eClass.getClassifierID()) {
-			case JSFLibraryRegistryPackage.JSF_LIBRARY_REGISTRY: return createJSFLibraryRegistry();
-			case JSFLibraryRegistryPackage.JSF_LIBRARY: return createJSFLibrary();
-			case JSFLibraryRegistryPackage.ARCHIVE_FILE: return createArchiveFile();
-			case JSFLibraryRegistryPackage.PLUGIN_PROVIDED_JSF_LIBRARY: return createPluginProvidedJSFLibrary();
-			default:
-				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Object createFromString(EDataType eDataType, String initialValue) {
-		switch (eDataType.getClassifierID()) {
-			case JSFLibraryRegistryPackage.JSF_VERSION: {
-				JSFVersion result = JSFVersion.get(initialValue);
-				if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
-				return result;
-			}
-			default:
-				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String convertToString(EDataType eDataType, Object instanceValue) {
-		switch (eDataType.getClassifierID()) {
-			case JSFLibraryRegistryPackage.JSF_VERSION:
-				return instanceValue == null ? null : instanceValue.toString();
-			default:
-				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public JSFLibraryRegistry createJSFLibraryRegistry() {
-		JSFLibraryRegistryImpl jsfLibraryRegistry = new JSFLibraryRegistryImpl();
-		return jsfLibraryRegistry;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public JSFLibrary createJSFLibrary() {
-		JSFLibraryImpl jsfLibrary = new JSFLibraryImpl();
-		return jsfLibrary;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ArchiveFile createArchiveFile() {
-		ArchiveFileImpl archiveFile = new ArchiveFileImpl();
-		return archiveFile;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public PluginProvidedJSFLibrary createPluginProvidedJSFLibrary() {
-		PluginProvidedJSFLibraryImpl pluginProvidedJSFLibrary = new PluginProvidedJSFLibraryImpl();
-		return pluginProvidedJSFLibrary;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public JSFLibraryRegistryPackage getJSFLibraryRegistryPackage() {
-		return (JSFLibraryRegistryPackage)getEPackage();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @deprecated
-	 * @generated
-	 */
-	public static JSFLibraryRegistryPackage getPackage() {
-		return JSFLibraryRegistryPackage.eINSTANCE;
-	}
-
-} //JSFLibraryRegistryFactoryImpl
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/impl/JSFLibraryRegistryImpl.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/impl/JSFLibraryRegistryImpl.java
deleted file mode 100644
index f460618..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/impl/JSFLibraryRegistryImpl.java
+++ /dev/null
@@ -1,419 +0,0 @@
-/*******************************************************************************
- * 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:
- *    Ian Trimble - initial API and implementation
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.core.internal.jsflibraryregistry.impl;
-
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.BasicEList;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.EObjectImpl;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistry;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistryPackage;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.PluginProvidedJSFLibrary;
-
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>JSF Library Registry</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- *   <li>{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.impl.JSFLibraryRegistryImpl#getDefaultImplementationID <em>Default Implementation ID</em>}</li>
- *   <li>{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.impl.JSFLibraryRegistryImpl#getJSFLibraries <em>JSF Libraries</em>}</li>
- *   <li>{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.impl.JSFLibraryRegistryImpl#getPluginProvidedJSFLibraries <em>Plugin Provided JSF Libraries</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public class JSFLibraryRegistryImpl extends EObjectImpl implements JSFLibraryRegistry {
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final String copyright = "Copyright (c) 2005 Oracle Corporation";
-
-	/**
-	 * The default value of the '{@link #getDefaultImplementationID() <em>Default Implementation ID</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getDefaultImplementationID()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String DEFAULT_IMPLEMENTATION_ID_EDEFAULT = "";
-
-	/**
-	 * The cached value of the '{@link #getDefaultImplementationID() <em>Default Implementation ID</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getDefaultImplementationID()
-	 * @generated
-	 * @ordered
-	 */
-	protected String defaultImplementationID = DEFAULT_IMPLEMENTATION_ID_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getJSFLibraries() <em>JSF Libraries</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getJSFLibraries()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList jsfLibraries = null;
-
-	/**
-	 * The cached value of the '{@link #getPluginProvidedJSFLibraries() <em>Plugin Provided JSF Libraries</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getPluginProvidedJSFLibraries()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList pluginProvidedJSFLibraries = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected JSFLibraryRegistryImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected EClass eStaticClass() {
-		return JSFLibraryRegistryPackage.eINSTANCE.getJSFLibraryRegistry();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getDefaultImplementationID() {
-		return defaultImplementationID;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setDefaultImplementationID(String newDefaultImplementationID) {
-		String oldDefaultImplementationID = defaultImplementationID;
-		defaultImplementationID = newDefaultImplementationID;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, JSFLibraryRegistryPackage.JSF_LIBRARY_REGISTRY__DEFAULT_IMPLEMENTATION_ID, oldDefaultImplementationID, defaultImplementationID));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EList getJSFLibraries() {
-		if (jsfLibraries == null) {
-			jsfLibraries = new EObjectContainmentEList(JSFLibrary.class, this, JSFLibraryRegistryPackage.JSF_LIBRARY_REGISTRY__JSF_LIBRARIES);
-		}
-		return jsfLibraries;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EList getPluginProvidedJSFLibraries() {
-		if (pluginProvidedJSFLibraries == null) {
-			pluginProvidedJSFLibraries = new EObjectContainmentEList(PluginProvidedJSFLibrary.class, this, JSFLibraryRegistryPackage.JSF_LIBRARY_REGISTRY__PLUGIN_PROVIDED_JSF_LIBRARIES);
-		}
-		return pluginProvidedJSFLibraries;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated NOT
-	 */
-	public JSFLibrary getDefaultImplementation() {
-		return getJSFLibraryByID(getDefaultImplementationID());
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated NOT
-	 */
-	public void setDefaultImplementation(JSFLibrary implementation) {
-		if (implementation != null) {
-			setDefaultImplementationID(implementation.getID());
-		} else {
-			setDefaultImplementationID(null);
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated NOT
-	 */
-	public JSFLibrary getJSFLibraryByID(String ID) {
-		JSFLibrary library = null;
-		if (ID != null) {
-			Iterator itLibs = getAllJSFLibraries().iterator();
-			while (itLibs.hasNext()) {
-				JSFLibrary curLib = (JSFLibrary)itLibs.next();
-				if (ID.equals(curLib.getID())) {
-					library = curLib;
-					break;
-				}
-			}
-		}
-		return library;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated NOT
-	 */
-	public EList getJSFLibrariesByName(String name) {
-		EList libraries = new BasicEList();
-		if (name != null) {
-			Iterator itLibs = getAllJSFLibraries().iterator();
-			while(itLibs.hasNext()) {
-				JSFLibrary curLib = (JSFLibrary)itLibs.next();
-				if (name.equals(curLib.getName())) {
-					libraries.add(curLib);
-				}
-			}
-		}
-		return libraries;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * This is a convenience method to return an EList of JSFLibrary instances
-	 * that are marked as JSF implementations; while all instances are valid
-	 * references, the returned EList should not be used for additions and/or
-	 * removals of instances (use the EList returned by getJSFLibraries()).
-	 * <!-- end-user-doc -->
-	 * @generated NOT
-	 */
-	public EList getImplJSFLibraries() {
-		EList implementations = new BasicEList();
-		Iterator itLibs = getAllJSFLibraries().iterator();
-		while (itLibs.hasNext()) {
-			JSFLibrary lib = (JSFLibrary)itLibs.next();
-			if (lib.isImplementation()) {
-				implementations.add(lib);
-			}
-		}
-		return implementations;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * This is a convenience method to return an EList of JSFLibrary instances
-	 * that are not marked as JSF implementations; while all instances are
-	 * valid references, the returned EList should not be used for additions
-	 * and/or removals of instances (use the EList returned by
-	 * getJSFLibraries()).
-	 * <!-- end-user-doc -->
-	 * @generated NOT
-	 */
-	public EList getNonImplJSFLibraries() {
-		EList nonImplementations = new BasicEList();
-		Iterator itLibs = getAllJSFLibraries().iterator();
-		while (itLibs.hasNext()) {
-			JSFLibrary lib = (JSFLibrary)itLibs.next();
-			if (!lib.isImplementation()) {
-				nonImplementations.add(lib);
-			}
-		}
-		return nonImplementations;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * This is a convenience method to return an EList of JSFLibrary instances
-	 * and PluginProvidedJSFLibrary instances; while all instances are valid
-	 * references, the returned EList should not be used for additions and/or
-	 * removals of instances (use the EList returned by getJSFLibraries()).
-	 * <!-- end-user-doc -->
-	 * @generated NOT
-	 */
-	public EList getAllJSFLibraries() {
-		EList allLibs = new BasicEList();
-		allLibs.addAll(getJSFLibraries());
-		allLibs.addAll(getPluginProvidedJSFLibraries());
-		return allLibs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated NOT
-	 */
-	public boolean addJSFLibrary(JSFLibrary library) {
-		boolean added = false;
-		if (library instanceof PluginProvidedJSFLibrary) {
-			added = getPluginProvidedJSFLibraries().add(library);
-		} else {
-			added = getJSFLibraries().add(library);
-		}
-		return added;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated NOT
-	 */
-	public boolean removeJSFLibrary(JSFLibrary library) {
-		boolean removed = false;
-		if (library instanceof PluginProvidedJSFLibrary) {
-			removed = getPluginProvidedJSFLibraries().remove(library);
-		} else {
-			removed = getJSFLibraries().remove(library);
-		}
-		return removed;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs) {
-		if (featureID >= 0) {
-			switch (eDerivedStructuralFeatureID(featureID, baseClass)) {
-				case JSFLibraryRegistryPackage.JSF_LIBRARY_REGISTRY__JSF_LIBRARIES:
-					return ((InternalEList)getJSFLibraries()).basicRemove(otherEnd, msgs);
-				case JSFLibraryRegistryPackage.JSF_LIBRARY_REGISTRY__PLUGIN_PROVIDED_JSF_LIBRARIES:
-					return ((InternalEList)getPluginProvidedJSFLibraries()).basicRemove(otherEnd, msgs);
-				default:
-					return eDynamicInverseRemove(otherEnd, featureID, baseClass, msgs);
-			}
-		}
-		return eBasicSetContainer(null, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Object eGet(EStructuralFeature eFeature, boolean resolve) {
-		switch (eDerivedStructuralFeatureID(eFeature)) {
-			case JSFLibraryRegistryPackage.JSF_LIBRARY_REGISTRY__DEFAULT_IMPLEMENTATION_ID:
-				return getDefaultImplementationID();
-			case JSFLibraryRegistryPackage.JSF_LIBRARY_REGISTRY__JSF_LIBRARIES:
-				return getJSFLibraries();
-			case JSFLibraryRegistryPackage.JSF_LIBRARY_REGISTRY__PLUGIN_PROVIDED_JSF_LIBRARIES:
-				return getPluginProvidedJSFLibraries();
-		}
-		return eDynamicGet(eFeature, resolve);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void eSet(EStructuralFeature eFeature, Object newValue) {
-		switch (eDerivedStructuralFeatureID(eFeature)) {
-			case JSFLibraryRegistryPackage.JSF_LIBRARY_REGISTRY__DEFAULT_IMPLEMENTATION_ID:
-				setDefaultImplementationID((String)newValue);
-				return;
-			case JSFLibraryRegistryPackage.JSF_LIBRARY_REGISTRY__JSF_LIBRARIES:
-				getJSFLibraries().clear();
-				getJSFLibraries().addAll((Collection)newValue);
-				return;
-			case JSFLibraryRegistryPackage.JSF_LIBRARY_REGISTRY__PLUGIN_PROVIDED_JSF_LIBRARIES:
-				getPluginProvidedJSFLibraries().clear();
-				getPluginProvidedJSFLibraries().addAll((Collection)newValue);
-				return;
-		}
-		eDynamicSet(eFeature, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void eUnset(EStructuralFeature eFeature) {
-		switch (eDerivedStructuralFeatureID(eFeature)) {
-			case JSFLibraryRegistryPackage.JSF_LIBRARY_REGISTRY__DEFAULT_IMPLEMENTATION_ID:
-				setDefaultImplementationID(DEFAULT_IMPLEMENTATION_ID_EDEFAULT);
-				return;
-			case JSFLibraryRegistryPackage.JSF_LIBRARY_REGISTRY__JSF_LIBRARIES:
-				getJSFLibraries().clear();
-				return;
-			case JSFLibraryRegistryPackage.JSF_LIBRARY_REGISTRY__PLUGIN_PROVIDED_JSF_LIBRARIES:
-				getPluginProvidedJSFLibraries().clear();
-				return;
-		}
-		eDynamicUnset(eFeature);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public boolean eIsSet(EStructuralFeature eFeature) {
-		switch (eDerivedStructuralFeatureID(eFeature)) {
-			case JSFLibraryRegistryPackage.JSF_LIBRARY_REGISTRY__DEFAULT_IMPLEMENTATION_ID:
-				return DEFAULT_IMPLEMENTATION_ID_EDEFAULT == null ? defaultImplementationID != null : !DEFAULT_IMPLEMENTATION_ID_EDEFAULT.equals(defaultImplementationID);
-			case JSFLibraryRegistryPackage.JSF_LIBRARY_REGISTRY__JSF_LIBRARIES:
-				return jsfLibraries != null && !jsfLibraries.isEmpty();
-			case JSFLibraryRegistryPackage.JSF_LIBRARY_REGISTRY__PLUGIN_PROVIDED_JSF_LIBRARIES:
-				return pluginProvidedJSFLibraries != null && !pluginProvidedJSFLibraries.isEmpty();
-		}
-		return eDynamicIsSet(eFeature);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (DefaultImplementationID: ");
-		result.append(defaultImplementationID);
-		result.append(')');
-		return result.toString();
-	}
-
-} //JSFLibraryRegistryImpl
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/impl/JSFLibraryRegistryPackageImpl.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/impl/JSFLibraryRegistryPackageImpl.java
deleted file mode 100644
index 6d496c9..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/impl/JSFLibraryRegistryPackageImpl.java
+++ /dev/null
@@ -1,480 +0,0 @@
-/*******************************************************************************
- * 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:
- *    Ian Trimble - initial API and implementation
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.core.internal.jsflibraryregistry.impl;
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EEnum;
-import org.eclipse.emf.ecore.EOperation;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.impl.EPackageImpl;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.ArchiveFile;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistry;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistryFactory;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistryPackage;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFVersion;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.PluginProvidedJSFLibrary;
-
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model <b>Package</b>.
- * <!-- end-user-doc -->
- * @generated
- */
-public class JSFLibraryRegistryPackageImpl extends EPackageImpl implements JSFLibraryRegistryPackage {
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final String copyright = "Copyright (c) 2005 Oracle Corporation";
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass jsfLibraryRegistryEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass jsfLibraryEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass archiveFileEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass pluginProvidedJSFLibraryEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EEnum jsfVersionEEnum = null;
-
-	/**
-	 * Creates an instance of the model <b>Package</b>, registered with
-	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
-	 * package URI value.
-	 * <p>Note: the correct way to create the package is via the static
-	 * factory method {@link #init init()}, which also performs
-	 * initialization of the package, or returns the registered package,
-	 * if one already exists.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.emf.ecore.EPackage.Registry
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistryPackage#eNS_URI
-	 * @see #init()
-	 * @generated
-	 */
-	private JSFLibraryRegistryPackageImpl() {
-		super(eNS_URI, JSFLibraryRegistryFactory.eINSTANCE);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private static boolean isInited = false;
-
-	/**
-	 * Creates, registers, and initializes the <b>Package</b> for this
-	 * model, and for any others upon which it depends.  Simple
-	 * dependencies are satisfied by calling this method on all
-	 * dependent packages before doing anything else.  This method drives
-	 * initialization for interdependent packages directly, in parallel
-	 * with this package, itself.
-	 * <p>Of this package and its interdependencies, all packages which
-	 * have not yet been registered by their URI values are first created
-	 * and registered.  The packages are then initialized in two steps:
-	 * meta-model objects for all of the packages are created before any
-	 * are initialized, since one package's meta-model objects may refer to
-	 * those of another.
-	 * <p>Invocation of this method will not affect any packages that have
-	 * already been initialized.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #eNS_URI
-	 * @see #createPackageContents()
-	 * @see #initializePackageContents()
-	 * @generated
-	 */
-	public static JSFLibraryRegistryPackage init() {
-		if (isInited) return (JSFLibraryRegistryPackage)EPackage.Registry.INSTANCE.getEPackage(JSFLibraryRegistryPackage.eNS_URI);
-
-		// Obtain or create and register package
-		JSFLibraryRegistryPackageImpl theJSFLibraryRegistryPackage = (JSFLibraryRegistryPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(eNS_URI) instanceof JSFLibraryRegistryPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(eNS_URI) : new JSFLibraryRegistryPackageImpl());
-
-		isInited = true;
-
-		// Create package meta-data objects
-		theJSFLibraryRegistryPackage.createPackageContents();
-
-		// Initialize created meta-data
-		theJSFLibraryRegistryPackage.initializePackageContents();
-
-		// Mark meta-data to indicate it can't be changed
-		theJSFLibraryRegistryPackage.freeze();
-
-		return theJSFLibraryRegistryPackage;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getJSFLibraryRegistry() {
-		return jsfLibraryRegistryEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getJSFLibraryRegistry_DefaultImplementationID() {
-		return (EAttribute)jsfLibraryRegistryEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getJSFLibraryRegistry_JSFLibraries() {
-		return (EReference)jsfLibraryRegistryEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getJSFLibraryRegistry_PluginProvidedJSFLibraries() {
-		return (EReference)jsfLibraryRegistryEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getJSFLibrary() {
-		return jsfLibraryEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getJSFLibrary_ID() {
-		return (EAttribute)jsfLibraryEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getJSFLibrary_Name() {
-		return (EAttribute)jsfLibraryEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getJSFLibrary_JSFVersion() {
-		return (EAttribute)jsfLibraryEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getJSFLibrary_Deployed() {
-		return (EAttribute)jsfLibraryEClass.getEStructuralFeatures().get(3);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getJSFLibrary_Implementation() {
-		return (EAttribute)jsfLibraryEClass.getEStructuralFeatures().get(4);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getJSFLibrary_ArchiveFiles() {
-		return (EReference)jsfLibraryEClass.getEStructuralFeatures().get(5);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getArchiveFile() {
-		return archiveFileEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getArchiveFile_SourceLocation() {
-		return (EAttribute)archiveFileEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getArchiveFile_RelativeToWorkspace() {
-		return (EAttribute)archiveFileEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getArchiveFile_RelativeDestLocation() {
-		return (EAttribute)archiveFileEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getArchiveFile_JSFLibrary() {
-		return (EReference)archiveFileEClass.getEStructuralFeatures().get(3);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getPluginProvidedJSFLibrary() {
-		return pluginProvidedJSFLibraryEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getPluginProvidedJSFLibrary_PluginID() {
-		return (EAttribute)pluginProvidedJSFLibraryEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EEnum getJSFVersion() {
-		return jsfVersionEEnum;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public JSFLibraryRegistryFactory getJSFLibraryRegistryFactory() {
-		return (JSFLibraryRegistryFactory)getEFactoryInstance();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private boolean isCreated = false;
-
-	/**
-	 * Creates the meta-model objects for the package.  This method is
-	 * guarded to have no affect on any invocation but its first.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void createPackageContents() {
-		if (isCreated) return;
-		isCreated = true;
-
-		// Create classes and their features
-		jsfLibraryRegistryEClass = createEClass(JSF_LIBRARY_REGISTRY);
-		createEAttribute(jsfLibraryRegistryEClass, JSF_LIBRARY_REGISTRY__DEFAULT_IMPLEMENTATION_ID);
-		createEReference(jsfLibraryRegistryEClass, JSF_LIBRARY_REGISTRY__JSF_LIBRARIES);
-		createEReference(jsfLibraryRegistryEClass, JSF_LIBRARY_REGISTRY__PLUGIN_PROVIDED_JSF_LIBRARIES);
-
-		jsfLibraryEClass = createEClass(JSF_LIBRARY);
-		createEAttribute(jsfLibraryEClass, JSF_LIBRARY__ID);
-		createEAttribute(jsfLibraryEClass, JSF_LIBRARY__NAME);
-		createEAttribute(jsfLibraryEClass, JSF_LIBRARY__JSF_VERSION);
-		createEAttribute(jsfLibraryEClass, JSF_LIBRARY__DEPLOYED);
-		createEAttribute(jsfLibraryEClass, JSF_LIBRARY__IMPLEMENTATION);
-		createEReference(jsfLibraryEClass, JSF_LIBRARY__ARCHIVE_FILES);
-
-		archiveFileEClass = createEClass(ARCHIVE_FILE);
-		createEAttribute(archiveFileEClass, ARCHIVE_FILE__RELATIVE_TO_WORKSPACE);
-		createEAttribute(archiveFileEClass, ARCHIVE_FILE__SOURCE_LOCATION);
-		createEAttribute(archiveFileEClass, ARCHIVE_FILE__RELATIVE_DEST_LOCATION);
-		createEReference(archiveFileEClass, ARCHIVE_FILE__JSF_LIBRARY);
-
-		pluginProvidedJSFLibraryEClass = createEClass(PLUGIN_PROVIDED_JSF_LIBRARY);
-		createEAttribute(pluginProvidedJSFLibraryEClass, PLUGIN_PROVIDED_JSF_LIBRARY__PLUGIN_ID);
-
-		// Create enums
-		jsfVersionEEnum = createEEnum(JSF_VERSION);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private boolean isInitialized = false;
-
-	/**
-	 * Complete the initialization of the package and its meta-model.  This
-	 * method is guarded to have no affect on any invocation but its first.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void initializePackageContents() {
-		if (isInitialized) return;
-		isInitialized = true;
-
-		// Initialize package
-		setName(eNAME);
-		setNsPrefix(eNS_PREFIX);
-		setNsURI(eNS_URI);
-
-		// Add supertypes to classes
-		pluginProvidedJSFLibraryEClass.getESuperTypes().add(this.getJSFLibrary());
-
-		// Initialize classes and features; add operations and parameters
-		initEClass(jsfLibraryRegistryEClass, JSFLibraryRegistry.class, "JSFLibraryRegistry", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getJSFLibraryRegistry_DefaultImplementationID(), ecorePackage.getEString(), "DefaultImplementationID", "", 0, 1, JSFLibraryRegistry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getJSFLibraryRegistry_JSFLibraries(), this.getJSFLibrary(), null, "JSFLibraries", null, 0, -1, JSFLibraryRegistry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getJSFLibraryRegistry_PluginProvidedJSFLibraries(), this.getPluginProvidedJSFLibrary(), null, "PluginProvidedJSFLibraries", null, 0, -1, JSFLibraryRegistry.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		addEOperation(jsfLibraryRegistryEClass, ecorePackage.getEEList(), "getImplJSFLibraries");
-
-		addEOperation(jsfLibraryRegistryEClass, ecorePackage.getEEList(), "getNonImplJSFLibraries");
-
-		EOperation op = addEOperation(jsfLibraryRegistryEClass, this.getJSFLibrary(), "getJSFLibraryByID");
-		addEParameter(op, ecorePackage.getEString(), "ID");
-
-		op = addEOperation(jsfLibraryRegistryEClass, ecorePackage.getEEList(), "getJSFLibrariesByName");
-		addEParameter(op, ecorePackage.getEString(), "name");
-
-		addEOperation(jsfLibraryRegistryEClass, ecorePackage.getEEList(), "getAllJSFLibraries");
-
-		op = addEOperation(jsfLibraryRegistryEClass, ecorePackage.getEBoolean(), "addJSFLibrary");
-		addEParameter(op, this.getJSFLibrary(), "library");
-
-		op = addEOperation(jsfLibraryRegistryEClass, ecorePackage.getEBoolean(), "removeJSFLibrary");
-		addEParameter(op, this.getJSFLibrary(), "library");
-
-		addEOperation(jsfLibraryRegistryEClass, this.getJSFLibrary(), "getDefaultImplementation");
-
-		op = addEOperation(jsfLibraryRegistryEClass, null, "setDefaultImplementation");
-		addEParameter(op, this.getJSFLibrary(), "implementation");
-
-		initEClass(jsfLibraryEClass, JSFLibrary.class, "JSFLibrary", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getJSFLibrary_ID(), ecorePackage.getEString(), "ID", "", 1, 1, JSFLibrary.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getJSFLibrary_Name(), ecorePackage.getEString(), "Name", null, 1, 1, JSFLibrary.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getJSFLibrary_JSFVersion(), this.getJSFVersion(), "JSFVersion", "UNKNOWN", 1, 1, JSFLibrary.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getJSFLibrary_Deployed(), ecorePackage.getEBoolean(), "Deployed", "true", 1, 1, JSFLibrary.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getJSFLibrary_Implementation(), ecorePackage.getEBoolean(), "Implementation", "false", 1, 1, JSFLibrary.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getJSFLibrary_ArchiveFiles(), this.getArchiveFile(), this.getArchiveFile_JSFLibrary(), "ArchiveFiles", null, 0, -1, JSFLibrary.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		op = addEOperation(jsfLibraryEClass, ecorePackage.getEBoolean(), "containsArchiveFile");
-		addEParameter(op, ecorePackage.getEString(), "fullPath");
-
-		addEOperation(jsfLibraryEClass, this.getJSFLibrary(), "getWorkingCopy");
-
-		op = addEOperation(jsfLibraryEClass, null, "updateValues");
-		addEParameter(op, this.getJSFLibrary(), "otherLibrary");
-
-		op = addEOperation(jsfLibraryEClass, ecorePackage.getEBoolean(), "copyTo");
-		addEParameter(op, ecorePackage.getEString(), "baseDestLocation");
-
-		initEClass(archiveFileEClass, ArchiveFile.class, "ArchiveFile", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getArchiveFile_RelativeToWorkspace(), ecorePackage.getEBoolean(), "RelativeToWorkspace", "true", 1, 1, ArchiveFile.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getArchiveFile_SourceLocation(), ecorePackage.getEString(), "SourceLocation", null, 1, 1, ArchiveFile.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getArchiveFile_RelativeDestLocation(), ecorePackage.getEString(), "RelativeDestLocation", null, 1, 1, ArchiveFile.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getArchiveFile_JSFLibrary(), this.getJSFLibrary(), this.getJSFLibrary_ArchiveFiles(), "JSFLibrary", null, 1, 1, ArchiveFile.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		addEOperation(archiveFileEClass, ecorePackage.getEString(), "getName");
-
-		addEOperation(archiveFileEClass, ecorePackage.getEString(), "getPath");
-
-		addEOperation(archiveFileEClass, ecorePackage.getEBoolean(), "exists");
-
-		op = addEOperation(archiveFileEClass, ecorePackage.getEBoolean(), "equals");
-		addEParameter(op, ecorePackage.getEJavaObject(), "object");
-
-		addEOperation(archiveFileEClass, ecorePackage.getEInt(), "hashCode");
-
-		op = addEOperation(archiveFileEClass, ecorePackage.getEBoolean(), "copyTo");
-		addEParameter(op, ecorePackage.getEString(), "baseDestLocation");
-
-		addEOperation(archiveFileEClass, ecorePackage.getEString(), "getResolvedSourceLocation");
-
-		initEClass(pluginProvidedJSFLibraryEClass, PluginProvidedJSFLibrary.class, "PluginProvidedJSFLibrary", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getPluginProvidedJSFLibrary_PluginID(), ecorePackage.getEString(), "pluginID", null, 1, 1, PluginProvidedJSFLibrary.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		// Initialize enums and add enum literals
-		initEEnum(jsfVersionEEnum, JSFVersion.class, "JSFVersion");
-		addEEnumLiteral(jsfVersionEEnum, JSFVersion.V1_1_LITERAL);
-		addEEnumLiteral(jsfVersionEEnum, JSFVersion.V1_2_LITERAL);
-		addEEnumLiteral(jsfVersionEEnum, JSFVersion.UNKNOWN_LITERAL);
-
-		// Create resource
-		createResource(eNS_URI);
-	}
-
-} //JSFLibraryRegistryPackageImpl
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/impl/PluginProvidedJSFLibraryImpl.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/impl/PluginProvidedJSFLibraryImpl.java
deleted file mode 100644
index c474714..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/impl/PluginProvidedJSFLibraryImpl.java
+++ /dev/null
@@ -1,276 +0,0 @@
-/*******************************************************************************
- * 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:
- *    Ian Trimble - initial API and implementation
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.core.internal.jsflibraryregistry.impl;
-
-import java.util.Collection;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import org.eclipse.emf.ecore.util.InternalEList;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistryPackage;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFVersion;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.PluginProvidedJSFLibrary;
-
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Plugin Provided JSF Library</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- *   <li>{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.impl.PluginProvidedJSFLibraryImpl#getPluginID <em>Plugin ID</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public class PluginProvidedJSFLibraryImpl extends JSFLibraryImpl implements PluginProvidedJSFLibrary {
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final String copyright = "Copyright (c) 2005 Oracle Corporation";
-
-	/**
-	 * The default value of the '{@link #getPluginID() <em>Plugin ID</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getPluginID()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String PLUGIN_ID_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getPluginID() <em>Plugin ID</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getPluginID()
-	 * @generated
-	 * @ordered
-	 */
-	protected String pluginID = PLUGIN_ID_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected PluginProvidedJSFLibraryImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected EClass eStaticClass() {
-		return JSFLibraryRegistryPackage.eINSTANCE.getPluginProvidedJSFLibrary();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getPluginID() {
-		return pluginID;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setPluginID(String newPluginID) {
-		String oldPluginID = pluginID;
-		pluginID = newPluginID;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, JSFLibraryRegistryPackage.PLUGIN_PROVIDED_JSF_LIBRARY__PLUGIN_ID, oldPluginID, pluginID));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs) {
-		if (featureID >= 0) {
-			switch (eDerivedStructuralFeatureID(featureID, baseClass)) {
-				case JSFLibraryRegistryPackage.PLUGIN_PROVIDED_JSF_LIBRARY__ARCHIVE_FILES:
-					return ((InternalEList)getArchiveFiles()).basicAdd(otherEnd, msgs);
-				default:
-					return eDynamicInverseAdd(otherEnd, featureID, baseClass, msgs);
-			}
-		}
-		if (eContainer != null)
-			msgs = eBasicRemoveFromContainer(msgs);
-		return eBasicSetContainer(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs) {
-		if (featureID >= 0) {
-			switch (eDerivedStructuralFeatureID(featureID, baseClass)) {
-				case JSFLibraryRegistryPackage.PLUGIN_PROVIDED_JSF_LIBRARY__ARCHIVE_FILES:
-					return ((InternalEList)getArchiveFiles()).basicRemove(otherEnd, msgs);
-				default:
-					return eDynamicInverseRemove(otherEnd, featureID, baseClass, msgs);
-			}
-		}
-		return eBasicSetContainer(null, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Object eGet(EStructuralFeature eFeature, boolean resolve) {
-		switch (eDerivedStructuralFeatureID(eFeature)) {
-			case JSFLibraryRegistryPackage.PLUGIN_PROVIDED_JSF_LIBRARY__ID:
-				return getID();
-			case JSFLibraryRegistryPackage.PLUGIN_PROVIDED_JSF_LIBRARY__NAME:
-				return getName();
-			case JSFLibraryRegistryPackage.PLUGIN_PROVIDED_JSF_LIBRARY__JSF_VERSION:
-				return getJSFVersion();
-			case JSFLibraryRegistryPackage.PLUGIN_PROVIDED_JSF_LIBRARY__DEPLOYED:
-				return isDeployed() ? Boolean.TRUE : Boolean.FALSE;
-			case JSFLibraryRegistryPackage.PLUGIN_PROVIDED_JSF_LIBRARY__IMPLEMENTATION:
-				return isImplementation() ? Boolean.TRUE : Boolean.FALSE;
-			case JSFLibraryRegistryPackage.PLUGIN_PROVIDED_JSF_LIBRARY__ARCHIVE_FILES:
-				return getArchiveFiles();
-			case JSFLibraryRegistryPackage.PLUGIN_PROVIDED_JSF_LIBRARY__PLUGIN_ID:
-				return getPluginID();
-		}
-		return eDynamicGet(eFeature, resolve);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void eSet(EStructuralFeature eFeature, Object newValue) {
-		switch (eDerivedStructuralFeatureID(eFeature)) {
-			case JSFLibraryRegistryPackage.PLUGIN_PROVIDED_JSF_LIBRARY__ID:
-				setID((String)newValue);
-				return;
-			case JSFLibraryRegistryPackage.PLUGIN_PROVIDED_JSF_LIBRARY__NAME:
-				setName((String)newValue);
-				return;
-			case JSFLibraryRegistryPackage.PLUGIN_PROVIDED_JSF_LIBRARY__JSF_VERSION:
-				setJSFVersion((JSFVersion)newValue);
-				return;
-			case JSFLibraryRegistryPackage.PLUGIN_PROVIDED_JSF_LIBRARY__DEPLOYED:
-				setDeployed(((Boolean)newValue).booleanValue());
-				return;
-			case JSFLibraryRegistryPackage.PLUGIN_PROVIDED_JSF_LIBRARY__IMPLEMENTATION:
-				setImplementation(((Boolean)newValue).booleanValue());
-				return;
-			case JSFLibraryRegistryPackage.PLUGIN_PROVIDED_JSF_LIBRARY__ARCHIVE_FILES:
-				getArchiveFiles().clear();
-				getArchiveFiles().addAll((Collection)newValue);
-				return;
-			case JSFLibraryRegistryPackage.PLUGIN_PROVIDED_JSF_LIBRARY__PLUGIN_ID:
-				setPluginID((String)newValue);
-				return;
-		}
-		eDynamicSet(eFeature, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void eUnset(EStructuralFeature eFeature) {
-		switch (eDerivedStructuralFeatureID(eFeature)) {
-			case JSFLibraryRegistryPackage.PLUGIN_PROVIDED_JSF_LIBRARY__ID:
-				setID(ID_EDEFAULT);
-				return;
-			case JSFLibraryRegistryPackage.PLUGIN_PROVIDED_JSF_LIBRARY__NAME:
-				setName(NAME_EDEFAULT);
-				return;
-			case JSFLibraryRegistryPackage.PLUGIN_PROVIDED_JSF_LIBRARY__JSF_VERSION:
-				setJSFVersion(JSF_VERSION_EDEFAULT);
-				return;
-			case JSFLibraryRegistryPackage.PLUGIN_PROVIDED_JSF_LIBRARY__DEPLOYED:
-				setDeployed(DEPLOYED_EDEFAULT);
-				return;
-			case JSFLibraryRegistryPackage.PLUGIN_PROVIDED_JSF_LIBRARY__IMPLEMENTATION:
-				setImplementation(IMPLEMENTATION_EDEFAULT);
-				return;
-			case JSFLibraryRegistryPackage.PLUGIN_PROVIDED_JSF_LIBRARY__ARCHIVE_FILES:
-				getArchiveFiles().clear();
-				return;
-			case JSFLibraryRegistryPackage.PLUGIN_PROVIDED_JSF_LIBRARY__PLUGIN_ID:
-				setPluginID(PLUGIN_ID_EDEFAULT);
-				return;
-		}
-		eDynamicUnset(eFeature);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public boolean eIsSet(EStructuralFeature eFeature) {
-		switch (eDerivedStructuralFeatureID(eFeature)) {
-			case JSFLibraryRegistryPackage.PLUGIN_PROVIDED_JSF_LIBRARY__ID:
-				return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
-			case JSFLibraryRegistryPackage.PLUGIN_PROVIDED_JSF_LIBRARY__NAME:
-				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-			case JSFLibraryRegistryPackage.PLUGIN_PROVIDED_JSF_LIBRARY__JSF_VERSION:
-				return jsfVersion != JSF_VERSION_EDEFAULT;
-			case JSFLibraryRegistryPackage.PLUGIN_PROVIDED_JSF_LIBRARY__DEPLOYED:
-				return deployed != DEPLOYED_EDEFAULT;
-			case JSFLibraryRegistryPackage.PLUGIN_PROVIDED_JSF_LIBRARY__IMPLEMENTATION:
-				return implementation != IMPLEMENTATION_EDEFAULT;
-			case JSFLibraryRegistryPackage.PLUGIN_PROVIDED_JSF_LIBRARY__ARCHIVE_FILES:
-				return archiveFiles != null && !archiveFiles.isEmpty();
-			case JSFLibraryRegistryPackage.PLUGIN_PROVIDED_JSF_LIBRARY__PLUGIN_ID:
-				return PLUGIN_ID_EDEFAULT == null ? pluginID != null : !PLUGIN_ID_EDEFAULT.equals(pluginID);
-		}
-		return eDynamicIsSet(eFeature);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (pluginID: ");
-		result.append(pluginID);
-		result.append(')');
-		return result.toString();
-	}
-
-} //PluginProvidedJSFLibraryImpl
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/util/JSFLibraryRegistryAdapterFactory.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/util/JSFLibraryRegistryAdapterFactory.java
deleted file mode 100644
index 4002101..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/util/JSFLibraryRegistryAdapterFactory.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/*******************************************************************************
- * 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:
- *    Ian Trimble - initial API and implementation
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.core.internal.jsflibraryregistry.util;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notifier;
-
-import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.*;
-
-
-/**
- * <!-- begin-user-doc -->
- * The <b>Adapter Factory</b> for the model.
- * It provides an adapter <code>createXXX</code> method for each class of the model.
- * <!-- end-user-doc -->
- * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistryPackage
- * @generated
- */
-public class JSFLibraryRegistryAdapterFactory extends AdapterFactoryImpl {
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final String copyright = "Copyright (c) 2005 Oracle Corporation";
-
-	/**
-	 * The cached model package.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected static JSFLibraryRegistryPackage modelPackage;
-
-	/**
-	 * Creates an instance of the adapter factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public JSFLibraryRegistryAdapterFactory() {
-		if (modelPackage == null) {
-			modelPackage = JSFLibraryRegistryPackage.eINSTANCE;
-		}
-	}
-
-	/**
-	 * Returns whether this factory is applicable for the type of the object.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
-	 * <!-- end-user-doc -->
-	 * @return whether this factory is applicable for the type of the object.
-	 * @generated
-	 */
-	public boolean isFactoryForType(Object object) {
-		if (object == modelPackage) {
-			return true;
-		}
-		if (object instanceof EObject) {
-			return ((EObject)object).eClass().getEPackage() == modelPackage;
-		}
-		return false;
-	}
-
-	/**
-	 * The switch the delegates to the <code>createXXX</code> methods.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected JSFLibraryRegistrySwitch modelSwitch =
-		new JSFLibraryRegistrySwitch() {
-			public Object caseJSFLibraryRegistry(JSFLibraryRegistry object) {
-				return createJSFLibraryRegistryAdapter();
-			}
-			public Object caseJSFLibrary(JSFLibrary object) {
-				return createJSFLibraryAdapter();
-			}
-			public Object caseArchiveFile(ArchiveFile object) {
-				return createArchiveFileAdapter();
-			}
-			public Object casePluginProvidedJSFLibrary(PluginProvidedJSFLibrary object) {
-				return createPluginProvidedJSFLibraryAdapter();
-			}
-			public Object defaultCase(EObject object) {
-				return createEObjectAdapter();
-			}
-		};
-
-	/**
-	 * Creates an adapter for the <code>target</code>.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param target the object to adapt.
-	 * @return the adapter for the <code>target</code>.
-	 * @generated
-	 */
-	public Adapter createAdapter(Notifier target) {
-		return (Adapter)modelSwitch.doSwitch((EObject)target);
-	}
-
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistry <em>JSF Library Registry</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistry
-	 * @generated
-	 */
-	public Adapter createJSFLibraryRegistryAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary <em>JSF Library</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary
-	 * @generated
-	 */
-	public Adapter createJSFLibraryAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.ArchiveFile <em>Archive File</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.ArchiveFile
-	 * @generated
-	 */
-	public Adapter createArchiveFileAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jst.jsf.core.internal.jsflibraryregistry.PluginProvidedJSFLibrary <em>Plugin Provided JSF Library</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.PluginProvidedJSFLibrary
-	 * @generated
-	 */
-	public Adapter createPluginProvidedJSFLibraryAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for the default case.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @generated
-	 */
-	public Adapter createEObjectAdapter() {
-		return null;
-	}
-
-} //JSFLibraryRegistryAdapterFactory
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/util/JSFLibraryRegistryResourceFactoryImpl.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/util/JSFLibraryRegistryResourceFactoryImpl.java
deleted file mode 100644
index e369138..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/util/JSFLibraryRegistryResourceFactoryImpl.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * 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:
- *    Ian Trimble - initial API and implementation
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.core.internal.jsflibraryregistry.util;
-
-import org.eclipse.emf.common.util.URI;
-
-import org.eclipse.emf.ecore.resource.Resource;
-
-import org.eclipse.emf.ecore.resource.impl.ResourceFactoryImpl;
-
-/**
- * <!-- begin-user-doc -->
- * The <b>Resource Factory</b> associated with the package.
- * <!-- end-user-doc -->
- * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.util.JSFLibraryRegistryResourceImpl
- * @generated
- */
-public class JSFLibraryRegistryResourceFactoryImpl extends ResourceFactoryImpl {
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final String copyright = "Copyright (c) 2005 Oracle Corporation";
-
-	/**
-	 * Creates an instance of the resource factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public JSFLibraryRegistryResourceFactoryImpl() {
-		super();
-	}
-
-	/**
-	 * Creates an instance of the resource.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Resource createResource(URI uri) {
-		Resource result = new JSFLibraryRegistryResourceImpl(uri);
-		return result;
-	}
-
-} //JSFLibraryRegistryResourceFactoryImpl
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/util/JSFLibraryRegistryResourceImpl.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/util/JSFLibraryRegistryResourceImpl.java
deleted file mode 100644
index 5d67dcf..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/util/JSFLibraryRegistryResourceImpl.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * 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:
- *    Ian Trimble - initial API and implementation
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.core.internal.jsflibraryregistry.util;
-
-import org.eclipse.emf.common.util.URI;
-
-import org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl;
-
-/**
- * <!-- begin-user-doc -->
- * The <b>Resource </b> associated with the package.
- * <!-- end-user-doc -->
- * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.util.JSFLibraryRegistryResourceFactoryImpl
- * @generated
- */
-public class JSFLibraryRegistryResourceImpl extends XMLResourceImpl {
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final String copyright = "Copyright (c) 2005 Oracle Corporation";
-
-	/**
-	 * Creates an instance of the resource.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param uri the URI of the new resource.
-	 * @generated
-	 */
-	public JSFLibraryRegistryResourceImpl(URI uri) {
-		super(uri);
-	}
-
-} //JSFLibraryRegistryResourceImpl
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/util/JSFLibraryRegistrySwitch.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/util/JSFLibraryRegistrySwitch.java
deleted file mode 100644
index 58863bf..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/jsflibraryregistry/util/JSFLibraryRegistrySwitch.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/*******************************************************************************
- * 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:
- *    Ian Trimble - initial API and implementation
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.core.internal.jsflibraryregistry.util;
-
-import java.util.List;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.*;
-
-
-/**
- * <!-- begin-user-doc -->
- * The <b>Switch</b> for the model's inheritance hierarchy.
- * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
- * to invoke the <code>caseXXX</code> method for each class of the model,
- * starting with the actual class of the object
- * and proceeding up the inheritance hierarchy
- * until a non-null result is returned,
- * which is the result of the switch.
- * <!-- end-user-doc -->
- * @see org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistryPackage
- * @generated
- */
-public class JSFLibraryRegistrySwitch {
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final String copyright = "Copyright (c) 2005 Oracle Corporation";
-
-	/**
-	 * The cached model package
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected static JSFLibraryRegistryPackage modelPackage;
-
-	/**
-	 * Creates an instance of the switch.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public JSFLibraryRegistrySwitch() {
-		if (modelPackage == null) {
-			modelPackage = JSFLibraryRegistryPackage.eINSTANCE;
-		}
-	}
-
-	/**
-	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the first non-null result returned by a <code>caseXXX</code> call.
-	 * @generated
-	 */
-	public Object doSwitch(EObject theEObject) {
-		return doSwitch(theEObject.eClass(), theEObject);
-	}
-
-	/**
-	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the first non-null result returned by a <code>caseXXX</code> call.
-	 * @generated
-	 */
-	protected Object doSwitch(EClass theEClass, EObject theEObject) {
-		if (theEClass.eContainer() == modelPackage) {
-			return doSwitch(theEClass.getClassifierID(), theEObject);
-		}
-		else {
-			List eSuperTypes = theEClass.getESuperTypes();
-			return
-				eSuperTypes.isEmpty() ?
-					defaultCase(theEObject) :
-					doSwitch((EClass)eSuperTypes.get(0), theEObject);
-		}
-	}
-
-	/**
-	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the first non-null result returned by a <code>caseXXX</code> call.
-	 * @generated
-	 */
-	protected Object doSwitch(int classifierID, EObject theEObject) {
-		switch (classifierID) {
-			case JSFLibraryRegistryPackage.JSF_LIBRARY_REGISTRY: {
-				JSFLibraryRegistry jsfLibraryRegistry = (JSFLibraryRegistry)theEObject;
-				Object result = caseJSFLibraryRegistry(jsfLibraryRegistry);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case JSFLibraryRegistryPackage.JSF_LIBRARY: {
-				JSFLibrary jsfLibrary = (JSFLibrary)theEObject;
-				Object result = caseJSFLibrary(jsfLibrary);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case JSFLibraryRegistryPackage.ARCHIVE_FILE: {
-				ArchiveFile archiveFile = (ArchiveFile)theEObject;
-				Object result = caseArchiveFile(archiveFile);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case JSFLibraryRegistryPackage.PLUGIN_PROVIDED_JSF_LIBRARY: {
-				PluginProvidedJSFLibrary pluginProvidedJSFLibrary = (PluginProvidedJSFLibrary)theEObject;
-				Object result = casePluginProvidedJSFLibrary(pluginProvidedJSFLibrary);
-				if (result == null) result = caseJSFLibrary(pluginProvidedJSFLibrary);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			default: return defaultCase(theEObject);
-		}
-	}
-
-	/**
-	 * Returns the result of interpretting the object as an instance of '<em>JSF Library Registry</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpretting the object as an instance of '<em>JSF Library Registry</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public Object caseJSFLibraryRegistry(JSFLibraryRegistry object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpretting the object as an instance of '<em>JSF Library</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpretting the object as an instance of '<em>JSF Library</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public Object caseJSFLibrary(JSFLibrary object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpretting the object as an instance of '<em>Archive File</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpretting the object as an instance of '<em>Archive File</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public Object caseArchiveFile(ArchiveFile object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpretting the object as an instance of '<em>Plugin Provided JSF Library</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpretting the object as an instance of '<em>Plugin Provided JSF Library</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public Object casePluginProvidedJSFLibrary(PluginProvidedJSFLibrary object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpretting the object as an instance of '<em>EObject</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch, but this is the last case anyway.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpretting the object as an instance of '<em>EObject</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
-	 * @generated
-	 */
-	public Object defaultCase(EObject object) {
-		return null;
-	}
-
-} //JSFLibraryRegistrySwitch
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/launch/JSFFileURL.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/launch/JSFFileURL.java
deleted file mode 100644
index 31fae2e..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/launch/JSFFileURL.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*******************************************************************************
- * 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
- *******************************************************************************/ 
-
-package org.eclipse.jst.jsf.core.internal.launch;
-
-import java.util.Iterator;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jst.j2ee.internal.web.jfaces.extension.FileURL;
-import org.eclipse.jst.j2ee.web.componentcore.util.WebArtifactEdit;
-import org.eclipse.jst.j2ee.webapplication.Servlet;
-import org.eclipse.jst.j2ee.webapplication.ServletMapping;
-import org.eclipse.jst.j2ee.webapplication.WebApp;
-import org.eclipse.jst.jsf.core.internal.project.facet.JSFUtils;
-
-/**
- * Extends the FileURL extension-point so that a JSF JSP page
- * can have it's URL mapped to the Faces Servlet using the servlet-mapping 
- * specified in the web.xml file
- * 
- * @author Gerry Kessler - Oracle
- *
- */
-public class JSFFileURL implements FileURL {
-
-	/**
-	 * If this is a JSP page, this will return a URL using the first valid servlet-mapping to the Faces Servlet
-	 * if found.   If the faces servlet is not defined in the web.xml or there is no servlet-mapping, this will return null.
-	 * 
-	 * Currently (11/21/05) this will only work if file extension is .jsf 
-	 * 
-	 * @see org.eclipse.jst.j2ee.internal.web.jfaces.extension.FileURL#getFileURL(org.eclipse.core.resources.IResource, org.eclipse.core.runtime.IPath)
-	 */
-	public IPath getFileURL(IResource resource, IPath existingURL) {
-		WebArtifactEdit webAppEdit = null;
-
-		//temporarily, we will filter on jsp file extensions only.
-		if (!resource.getFileExtension().equalsIgnoreCase("jsp")) //$NON-NLS-1$
-			return null;
-		
-		try {
-			//is this is a Faces Project with a Faces Servlet?
-			//we will not check to see if facet is installed.  
-			// check to see if this resource is a JSF page (currently always true) and then,
-			//if servlet is present, we will change the url based on first mapping found 
-			webAppEdit = JSFUtils.getWebArtifactEditForRead(resource.getProject());
-			if (webAppEdit != null){
-				WebApp webApp = webAppEdit.getWebApp();
-				if (webApp != null){
-					Servlet servlet = JSFUtils.findJSFServlet(webAppEdit.getWebApp());
-					if (servlet == null)//if no faces servlet, do nothing
-						return null;
-					
-					//if not a JSF page, do nothing
-					if (!isJSFPage(resource))
-						return null;
-					
-					Iterator mappings = servlet.getMappings().iterator();
-					ServletMapping map = null;
-					while (mappings.hasNext()){
-						map = (ServletMapping)mappings.next();
-						
-						String foundFileExtension = getFileExtensionFromMap(map);
-						if (foundFileExtension != null)
-							return existingURL.removeFileExtension().addFileExtension(foundFileExtension);
-
-						String foundDirectoryMapping = getDirectoryMapping(map);
-						if (foundDirectoryMapping != null){						
-							return new Path(foundDirectoryMapping).append(existingURL); 
-						}
-					}					
-				}
-			}
-			return null;
-		} finally {
-			if (webAppEdit != null)
-				webAppEdit.dispose();
-		}
-	}
-	
-	private String getDirectoryMapping(ServletMapping map) {
-		IPath extPath = new Path(map.getUrlPattern());
-		if (extPath != null){
-			String ext = extPath.getFileExtension();
-			if (ext == null){
-				String lastSeg = extPath.lastSegment();
-				if (lastSeg.equals("*")) //$NON-NLS-1$
-					return extPath.removeLastSegments(1).toString();
-				else 
-					return extPath.toString();				
-			}
-		}
-		return null;
-	}
-	
-	private String getFileExtensionFromMap(ServletMapping map) {
-		IPath extPath = new Path(map.getUrlPattern());
-		if (extPath != null){
-			String ext = extPath.getFileExtension();
-			if (ext != null && !ext.equals("")) //$NON-NLS-1$
-				return ext;
-		}
-		return null;
-	}
-	
-	private boolean isJSFPage(IResource resource) {
-		// currently always return true.
-		// need to find quick way of determining whether this is a JSF JSP Page
-		return true;
-	}
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/messages.properties b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/messages.properties
deleted file mode 100644
index c5d6c71..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/messages.properties
+++ /dev/null
@@ -1,35 +0,0 @@
-###############################################################################
-# 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
-#    Ian Trimble - change key names for use with org.eclipse.osgi.util.NLS
-###############################################################################
-JSFLibraryRegistry_ErrorCreatingURL=Error creating URL for JSF Library Registry
-JSFLibraryRegistry_NoLoadCreatingNew=Could not load JSF Library Registry; creating new registry
-JSFLibraryRegistry_ErrorSaving=Error saving JSF Library Registry
-JSFLibraryRegistry_DEFAULT_IMPL_LABEL=<Default>
-JSFLibraryRegistry_ErrorLoadingFromExtPt=Error while loading JSF Libaries from extension points
-
-JSFFacetInstallDataModelProvider_ValidateServletName=Specify a servlet name to use
-JSFFacetInstallDataModelProvider_ValidateJSFImpl=A default JSF implementation has not been set. Please use 'Add...' to create a library or un-check deploy jars
-JSFFacetInstallDataModelProvider_ValidateConfigFilePath=The configuration file path is not valid
-JSFFacetInstallDataModelProvider_ValidateConfigFileEmpty=Specify a valid name and location for JSF configuration file
-JSFFacetInstallDataModelProvider_ValidateConfigFileRelative1=Configuration file must be specified relative to the project's {0} folder
-JSFFacetInstallDataModelProvider_ValidateConfigFileRelative2=Configuration file must be located in the project's {0} folder
-JSFFacetInstallDataModelProvider_ValidateConfigFileXML=JSF configuration file must be an XML file
-JSFFacetInstallDataModelProvider_ValidateConfigFileSlashes=Configuration file path must not contain "\\"s.   Use "/" instead.
-
-ArchiveFileImpl_CannotCopyFile=Cannot copy file
-ArchiveFileImpl_CannotCloseFile=Cannot close file
-ArchiveFileImpl_CannotLocatePluginRelativeFile=Cannot locate plugin-relative file "{0}"
-
-PluginProvidedJSFLibraryCreationHelper_ErrorCreating=Unable to create JSF Library: {0}
-PluginProvidedJSFLibraryCreationHelper_ErrorMultipleDefinition={0} defined multiple times in {1}
-
-JSFUtils_ErrorCreatingConfigFile=Error creating config file
-JSFUtils_ErrorClosingConfigFile=Error closing config file
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/project/facet/IJSFFacetInstallDataModelProperties.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/project/facet/IJSFFacetInstallDataModelProperties.java
deleted file mode 100644
index 4b2b458..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/project/facet/IJSFFacetInstallDataModelProperties.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * 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
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.core.internal.project.facet;
- 
-import org.eclipse.wst.common.componentcore.datamodel.properties.IFacetInstallDataModelProperties;
-
-/**
- * Defines properties used by the JSF facet install data model.
- * 
- * @author Gerry Kessler - Oracle
- */
-public interface IJSFFacetInstallDataModelProperties extends IFacetInstallDataModelProperties {
-	 public static final String IMPLEMENTATION = "IJSFFacetInstallDataModelProperties.IMPLEMENTATION"; //$NON-NLS-1$
-	 public static final String DEPLOY_IMPLEMENTATION = "IJSFFacetInstallDataModelProperties.DEPLOY_IMPLEMENTATION"; //$NON-NLS-1$
-	 public static final String CONFIG_PATH = "IJSFFacetInstallDataModelProperties.CONFIG_PATH"; //$NON-NLS-1$
-	 public static final String SERVLET_NAME = "IJSFFacetInstallDataModelProperties.SERVLET_NAME"; //$NON-NLS-1$
-	 public static final String SERVLET_URL_PATTERNS = "IJSFFacetInstallDataModelProperties.SERVLET_URL_PATTERNS"; //$NON-NLS-1$
-	 public static final String WEBCONTENT_DIR = "IJSFFacetInstallDataModelProperties.WEBCONTENT_DIR"; //$NON-NLS-1$
-}
-
- 
\ No newline at end of file
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/project/facet/JSFFacetInstallDataModelProvider.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/project/facet/JSFFacetInstallDataModelProvider.java
deleted file mode 100644
index 283f495..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/project/facet/JSFFacetInstallDataModelProvider.java
+++ /dev/null
@@ -1,203 +0,0 @@
-/*******************************************************************************
- * 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
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.core.internal.project.facet;
-
-import java.util.Set;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jst.j2ee.web.componentcore.util.WebArtifactEdit;
-import org.eclipse.jst.jsf.core.internal.JSFCorePlugin;
-import org.eclipse.jst.jsf.core.internal.Messages;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.componentcore.datamodel.FacetInstallDataModelProvider;
-import org.eclipse.wst.common.componentcore.datamodel.properties.IFacetDataModelProperties;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
-import org.eclipse.wst.common.frameworks.internal.operations.IProjectCreationPropertiesNew;
-import org.eclipse.wst.common.frameworks.internal.plugin.WTPCommonPlugin;
-
-/**
- * Provides a data model used by the JSF facet install.
- * 
- * @author Gerry Kessler - Oracle
- */
-public class JSFFacetInstallDataModelProvider extends
-		FacetInstallDataModelProvider implements
-		IJSFFacetInstallDataModelProperties {
-
-	private String 	errorMessage;
-	private IPath 	webContentPath;
-	
-	public Set getPropertyNames() {
-		Set names = super.getPropertyNames();
-		names.add(IMPLEMENTATION);
-		names.add(DEPLOY_IMPLEMENTATION);
-		names.add(CONFIG_PATH);
-		names.add(SERVLET_NAME);
-		names.add(SERVLET_URL_PATTERNS);
-		names.add(WEBCONTENT_DIR);
-		return names;
-	}
-
-	public Object getDefaultProperty(String propertyName) {
-		if (propertyName.equals(IMPLEMENTATION)) {
-			if (JSFCorePlugin.getDefault().getJSFLibraryRegistry() == null)
-				return null;
-			return JSFCorePlugin.getDefault().getJSFLibraryRegistry().getDefaultImplementation();
-		} else if (propertyName.equals(DEPLOY_IMPLEMENTATION)) {
-			return Boolean.TRUE;
-		} else if (propertyName.equals(CONFIG_PATH)) {
-			return JSFUtils.JSF_DEFAULT_CONFIG_PATH; //$NON-NLS-1$;
-		} else if (propertyName.equals(SERVLET_NAME)) {
-			return "Faces Servlet"; //$NON-NLS-1$
-		} else if (propertyName.equals(SERVLET_URL_PATTERNS)) {
-			return new String[] { "*.faces" }; //$NON-NLS-1$
-		} else if (propertyName.equals(FACET_ID)) {
-			return JSFCorePlugin.FACET_ID;
-		} else if (propertyName.equals(WEBCONTENT_DIR)){
-			return "WebContent";  //not sure I need this
-		}
-		return super.getDefaultProperty(propertyName);
-	}
-	public IStatus validate(String name) {
-		errorMessage = null;
-		if (name.equals(IMPLEMENTATION) && getBooleanProperty(DEPLOY_IMPLEMENTATION)) {
-			return validateImpl((JSFLibrary)getProperty(IMPLEMENTATION));
-		} else if (name.equals(CONFIG_PATH)) {
-			return validateConfigLocation(getStringProperty(CONFIG_PATH));
-		} else if (name.equals(SERVLET_NAME)) {			
-			return validateServletName(getStringProperty(SERVLET_NAME));
-		}
-		return super.validate(name);
-	}
-	
-	private IStatus validateServletName(String servletName) {
-		if (servletName == null || servletName.trim().length() == 0) {
-			errorMessage = Messages.JSFFacetInstallDataModelProvider_ValidateServletName;
-			return WTPCommonPlugin.createErrorStatus(errorMessage);				
-		}
-		else 
-			return OK_STATUS;
-	}
-
-	private IStatus validateImpl(JSFLibrary impl) {
-		if (impl == null) {
-			errorMessage = Messages.JSFFacetInstallDataModelProvider_ValidateJSFImpl; 
-		}
-		if (errorMessage != null)
-			return WTPCommonPlugin.createErrorStatus(errorMessage);
-		else
-			return OK_STATUS;
-	}
-	
-	private IStatus validateConfigLocation(String text) {
-		if (text == null || text.trim().equals("")) { //$NON-NLS-1$
-			errorMessage = Messages.JSFFacetInstallDataModelProvider_ValidateConfigFileEmpty;
-			return WTPCommonPlugin.createErrorStatus(errorMessage);
-		}
-		text = text.trim();
-		
-		if (getProjectPath() == null) //this circumstance occurs on page init
-			return OK_STATUS;
-		
-		IPath fullPath = getProjectPath().append(text);
-		IPath passedPath = new Path(text);
-		if (!fullPath.isValidPath(text)){
-			errorMessage = Messages.JSFFacetInstallDataModelProvider_ValidateConfigFilePath;
-			return WTPCommonPlugin.createErrorStatus(errorMessage);
-		}
-		
-		//FIXME:  check for valid file path also [passedPath.toFile().isFile()] 
-		if (text.toLowerCase().lastIndexOf(".xml") != text.length() - 4) { //$NON-NLS-1$
-			errorMessage = Messages.JSFFacetInstallDataModelProvider_ValidateConfigFileXML;
-			return WTPCommonPlugin.createErrorStatus(errorMessage);
-		}
-		
-		if (text.lastIndexOf("\\") >= 0){ //$NON-NLS-1$
-			errorMessage = Messages.JSFFacetInstallDataModelProvider_ValidateConfigFileSlashes;
-			return WTPCommonPlugin.createErrorStatus(errorMessage);
-		} 
-//		if (1 == 1){
-//			//FIXME!!!!
-//			//until i can figure out how to get WebContent dir from the WebApp config,
-//			//skip validation here
-//			return OK_STATUS;
-//		}
-		
-		if (passedPath.getDevice() != null) {
-			errorMessage = NLS.bind(
-					Messages.JSFFacetInstallDataModelProvider_ValidateConfigFileRelative1,
-					getWebContentFolder().removeFirstSegments(getWebContentFolder().segmentCount() - 1).toString());
-			return WTPCommonPlugin.createErrorStatus(errorMessage);
-		}
-
-		IPath setPath = getWebContentFolder().append(passedPath);
-		if (!getWebContentFolder().isPrefixOf(setPath)) {
-			errorMessage = NLS.bind(
-					Messages.JSFFacetInstallDataModelProvider_ValidateConfigFileRelative2,
-					getWebContentFolder().removeFirstSegments(getWebContentFolder().segmentCount() - 1).toString());
-			return WTPCommonPlugin.createErrorStatus(errorMessage);
-		}
-
-		return OK_STATUS;
-	}
-	
-	private IPath getProjectPath() {
-		String projName = (String)getProperty(FACET_PROJECT_NAME);
-		IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projName);
-		if (project.exists()){
-			return project.getLocation();
-		} else {
-			IDataModel projModel = (IDataModel)getProperty(MASTER_PROJECT_DM);
-			if (projModel.getBooleanProperty(IProjectCreationPropertiesNew.USE_DEFAULT_LOCATION)){
-				return new Path(projModel.getStringProperty(IProjectCreationPropertiesNew.PROJECT_LOCATION)).append(projName);
-			}
-			else {
-				return new Path(projModel.getStringProperty(IProjectCreationPropertiesNew.USER_DEFINED_LOCATION)).append(projName);
-			}	
-		}
-	}
-
-	private IPath getWebContentFolder() {
-		//One can get here 2 ways:
-		//if web app exists and user is adding a facet, or
-		// if creating a new web app.   
-		if (webContentPath != null)
-			return webContentPath;
-		
-		WebArtifactEdit webApp = null;
-		try {
-			String projName = model.getStringProperty(IFacetDataModelProperties.FACET_PROJECT_NAME);
-			IProject proj = ResourcesPlugin.getWorkspace().getRoot()
-					.getProject(projName);
-			webApp = JSFUtils.getWebArtifactEditForRead(proj);
-			if (webApp != null) {
-				webContentPath = JSFUtils.getWebArtifactEditForRead(proj)
-					.getDeploymentDescriptorPath().removeLastSegments(2);
-				return webContentPath;
-			} else {
-				webContentPath = new Path(getStringProperty(WEBCONTENT_DIR));
-				return webContentPath;
-			}
-				
-		} finally {
-			if (webApp != null) {
-				webApp.dispose();
-			}
-		}
-
-	}
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/project/facet/JSFFacetInstallDelegate.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/project/facet/JSFFacetInstallDelegate.java
deleted file mode 100644
index e9374c0..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/project/facet/JSFFacetInstallDelegate.java
+++ /dev/null
@@ -1,219 +0,0 @@
-/*******************************************************************************
- * 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
- *******************************************************************************/ 
-
-package org.eclipse.jst.jsf.core.internal.project.facet;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jst.j2ee.internal.J2EEVersionConstants;
-import org.eclipse.jst.j2ee.web.componentcore.util.WebArtifactEdit;
-import org.eclipse.jst.j2ee.webapplication.Servlet;
-import org.eclipse.jst.j2ee.webapplication.WebApp;
-import org.eclipse.jst.jsf.core.internal.JSFCorePlugin;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
-import org.eclipse.wst.common.project.facet.core.IDelegate;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * JSF Facet Install Delegate for WTP faceted web projects.
- * 
- * Uses <code>com.eclispe.jst.jsf.core.internal.project.facet.JSFFacetInstallDataModelProvider<code> for model
- * 	 <li> TODO: creates JSF Application Model
- * 	 <li> creates JSF configuration file if not present
- * 	 <li> updates web.xml for: servlet, servlet-mapping and context-param
- * 	 <li> adds implementation jars to WEB-INF/lib if user requests
- * 
- * @see com.eclispe.jst.jsf.core.internal.project.facet.JSFFacetInstallConfig
- * @see com.eclispe.jst.jsf.core.internal.project.facet.JSFFacetInstallDataModelProvider
- * @author Gerry Kessler - Oracle
- * @since M1
- */
-public class JSFFacetInstallDelegate implements IDelegate {
-
-	public void execute(final IProject project, final IProjectFacetVersion fv,
-			final Object cfg, final IProgressMonitor monitor)
-
-	throws CoreException
-
-	{
-
-		if (monitor != null) {
-			monitor.beginTask("", 1); //$NON-NLS-1$
-		}
-
-		try {
-			IDataModel config = null;
-
-			if (cfg != null) {
-				config = (IDataModel) cfg;
-			} else {
-				//FIXME: how would we hit this???
-//				config = new JSFFacetInstallConfig();
-//				config.setJsfImplID(jsfImplID);
-			}
-			// Create JSF App Model
-			// tbd
-
-			// Add JSF Impls to WEB-INF/lib
-			deployJSFLibraries(project, config, monitor);
-
-			// Create config file
-			createConfigFile(project, fv, config, monitor);
-
-			// Update web model
-			createServletAndModifyWebXML(project, config, monitor);
-
-			if (monitor != null) {
-				monitor.worked(1);
-			}
-
-		} finally {
-			if (monitor != null) {
-				monitor.done();
-			}
-		}
-	}
-
-	private void deployJSFLibraries(IProject project,
-			final IDataModel config, IProgressMonitor monitor) {
-		
-		if (config.getBooleanProperty(IJSFFacetInstallDataModelProperties.DEPLOY_IMPLEMENTATION)){
-			JSFLibrary impl = (JSFLibrary)config.getProperty(IJSFFacetInstallDataModelProperties.IMPLEMENTATION);
-			if (impl != null){
-				IPath destPath = project.getLocation().append(getWebContentPath(project));
-				impl.copyTo(destPath.toOSString());			
-			}
-		}
-	}
-
-	
-	private void createConfigFile(final IProject project,
-			final IProjectFacetVersion fv, final IDataModel config,
-			IProgressMonitor monitor) {
-		final IPath configPath = resolveConfigPath(project, config.getStringProperty(IJSFFacetInstallDataModelProperties.CONFIG_PATH));
-
-		try {
-			// do not overwrite if the file exists
-			if (!configPath.toFile().exists()) {
-				IWorkspaceRunnable op = new IWorkspaceRunnable(){
-
-					public void run(IProgressMonitor monitor)
-							throws CoreException{ 
-						JSFUtils.createConfigFile(fv.getVersionString(),
-								configPath);
-						project.refreshLocal(IResource.DEPTH_INFINITE, monitor);
-					}
-
-				};
-				op.run(monitor);
-			}
-		} catch (CoreException e) {
-			JSFCorePlugin.getDefault().getMsgLogger().log(e);
-			e.printStackTrace();
-		}
-
-	}
-
-	private void createServletAndModifyWebXML(IProject project,
-			final IDataModel config, IProgressMonitor monitor) {
-		WebApp webApp = null;
-		WebArtifactEdit artifactEdit = null;
-		try {
-			artifactEdit = JSFUtils.getWebArtifactEditForWrite(project);
-			webApp = artifactEdit.getWebApp();
-
-			// create or update servlet ref
-			Servlet servlet = JSFUtils.findJSFServlet(webApp);// check to see
-																// if already
-																// present
-			if (servlet != null) {
-				// remove old mappings
-				JSFUtils.removeURLMappings(webApp, servlet);
-			}
-			
-			servlet = JSFUtils
-					.createOrUpdateServletRef(webApp, config, servlet);
-
-			// init mappings
-			List listOfMappings = getServletMappings(config);
-			JSFUtils.setUpURLMappings(webApp, listOfMappings, servlet);
-
-			// setup context params
-			if (webApp.getVersionID() == J2EEVersionConstants.WEB_2_3_ID)//shouldn't have to do it this way, but that's the way it goes 119442
-				JSFUtils.setupConfigFileContextParamForV2_3(webApp, config);
-			else
-				JSFUtils.setupConfigFileContextParamForV2_4(webApp, config);
-			
-			
-
-		} finally {
-			if (artifactEdit != null) {
-				// save and dispose
-				artifactEdit.saveIfNecessary(monitor);
-				artifactEdit.dispose();
-			}
-		}
-	}
-
-	private List getServletMappings(IDataModel config) {
-		List mappings = new ArrayList();
-		String[] patterns = (String[])config.getProperty(IJSFFacetInstallDataModelProperties.SERVLET_URL_PATTERNS);
-		for (int i = 0; i < patterns.length; i++) {
-			String pattern = patterns[i];
-			mappings.add(pattern);
-		}
-
-		return mappings;
-	}
-	
-	private IPath getWebContentPath(IProject project) {
-		WebArtifactEdit web = null;
-		try {
-			web = WebArtifactEdit.getWebArtifactEditForRead(project);
-			IPath webxml = web.getDeploymentDescriptorPath();
-			//remove project name, WEB-INF an web.xml from path
-			IPath webContentPath = webxml.removeLastSegments(2).removeFirstSegments(1);
-			return webContentPath;
-		} finally {
-			if (web != null) {
-				web.dispose();
-			}
-		}
-	}
-	
-	private IPath resolveConfigPath(IProject project, String jsfConfigPath) {
-		// TODO: fix me
-		WebArtifactEdit web = null;
-		try {
-			web = WebArtifactEdit.getWebArtifactEditForRead(project);
-			IPath webxml = web.getDeploymentDescriptorPath();
-			IPath webcontent = webxml.removeLastSegments(2)
-					.removeFirstSegments(1);
-
-			return project.getLocation().append(
-					webcontent.append(new Path(jsfConfigPath)));
-		} finally {
-			if (web != null)
-				web.dispose();
-		}
-	}
-
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/project/facet/JSFFacetUninstallDelegate.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/project/facet/JSFFacetUninstallDelegate.java
deleted file mode 100644
index e8371ca..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/project/facet/JSFFacetUninstallDelegate.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*******************************************************************************
- * 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
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.core.internal.project.facet;
-
-import java.util.Iterator;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jst.j2ee.common.ParamValue;
-import org.eclipse.jst.j2ee.internal.J2EEVersionConstants;
-import org.eclipse.jst.j2ee.web.componentcore.util.WebArtifactEdit;
-import org.eclipse.jst.j2ee.webapplication.ContextParam;
-import org.eclipse.jst.j2ee.webapplication.Servlet;
-import org.eclipse.jst.j2ee.webapplication.WebApp;
-import org.eclipse.wst.common.project.facet.core.IDelegate;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * JSF Facet Uninstall Delegate for WTP faceted projects.
- *	
- *	<li> removes JSF servlet, servlet-mappings and context-params
- *	<li> leaves JSF configuration files on disk
- *  <li> removes JSF classpath containers
- *  
- * @author Gerry Kessler - Oracle
- * @since M1
- */
-public class JSFFacetUninstallDelegate implements IDelegate {
-
-	public void execute(IProject project, IProjectFacetVersion fv,
-			Object config, IProgressMonitor monitor) throws CoreException {
-		{
-
-			if (monitor != null) {
-				monitor.beginTask("", 1); //$NON-NLS-1$
-			}
-
-			try {
-
-				// Remove JSF App Model
-
-				// Rempoe JSF Impl Class Container
-				// Add JSF Impl Class Container
-				// final IJavaProject jproj = JavaCore.create(project);
-				// final IPath cont = new
-				// Path(JSFImplContainer.CONTAINER_ID).append(project.getName());
-				// removeClasspathContainer(jproj, cont);
-
-				// remove servlet stuff from web.xml
-				uninstallJSFReferencesFromWebApp(project, monitor);
-
-				if (monitor != null) {
-					monitor.worked(1);
-				}
-			} finally {
-				if (monitor != null) {
-					monitor.done();
-				}
-			}
-		}
-	}
-
-	private void uninstallJSFReferencesFromWebApp(IProject project,
-			IProgressMonitor monitor) {
-		WebArtifactEdit artifactEdit = JSFUtils
-				.getWebArtifactEditForWrite(project);
-		WebApp webApp = artifactEdit.getWebApp();
-
-		try {
-			Servlet servlet = JSFUtils.findJSFServlet(webApp);
-			if (servlet == null)
-				return;
-
-			// remove faces url mappings
-			removeJSFURLMappings(webApp, servlet);
-			// remove context params
-			removeJSFContextParams(webApp, servlet);
-			// remove servlet
-			removeJSFServlet(webApp, servlet);
-
-		} finally {
-			if (artifactEdit != null) {
-				artifactEdit.saveIfNecessary(monitor);
-				artifactEdit.dispose();
-			}
-		}
-
-	}
-
-	private void removeJSFURLMappings(WebApp webApp, Servlet servlet) {
-		while (webApp.getServletMapping(servlet) != null) {
-			webApp.getServletMappings().remove(
-					webApp.getServletMapping(servlet));
-		}
-	}
-
-	private void removeJSFContextParams(WebApp webApp, Servlet servlet) {
-		if (webApp.getVersionID() == J2EEVersionConstants.WEB_2_3_ID){
-			Iterator it = webApp.getContexts().iterator();
-			while (it.hasNext()) {
-				ContextParam cp = (ContextParam) it.next();
-				if (cp.getParamName().equals(JSFUtils.JSF_CONFIG_CONTEXT_PARAM)) {
-					webApp.getContexts().remove(cp);
-					break;
-				}
-			}
-		}
-		else {//could check for 2_4 version here.   
-			//hoping that the API gets fixed so I don't need to do any of this version checking
-			Iterator it = webApp.getContextParams().iterator();
-			while (it.hasNext()) {
-				ParamValue cp = (ParamValue) it.next();
-				if (cp.getName().equals(JSFUtils.JSF_CONFIG_CONTEXT_PARAM)) {
-					webApp.getContextParams().remove(cp);
-					break;
-				}
-			}
-		}
-	}
-
-	private void removeJSFServlet(WebApp webApp, Servlet servlet) {
-		webApp.getServlets().remove(servlet);
-	}
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/project/facet/JSFUtils.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/project/facet/JSFUtils.java
deleted file mode 100644
index 8b77ed3..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/project/facet/JSFUtils.java
+++ /dev/null
@@ -1,314 +0,0 @@
-/*******************************************************************************
- * 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
- *******************************************************************************/ 
-
-package org.eclipse.jst.jsf.core.internal.project.facet;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jst.j2ee.common.CommonFactory;
-import org.eclipse.jst.j2ee.common.ParamValue;
-import org.eclipse.jst.j2ee.web.componentcore.util.WebArtifactEdit;
-import org.eclipse.jst.j2ee.webapplication.ContextParam;
-import org.eclipse.jst.j2ee.webapplication.JSPType;
-import org.eclipse.jst.j2ee.webapplication.Servlet;
-import org.eclipse.jst.j2ee.webapplication.ServletMapping;
-import org.eclipse.jst.j2ee.webapplication.ServletType;
-import org.eclipse.jst.j2ee.webapplication.WebApp;
-import org.eclipse.jst.j2ee.webapplication.WebapplicationFactory;
-import org.eclipse.jst.jsf.core.internal.JSFCorePlugin;
-import org.eclipse.jst.jsf.core.internal.Messages;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
-
-/**
- * Utility file for JSF model
- * 
- * @author Gerry Kessler - Oracle
- * @since M1
- */
-public class JSFUtils {
-	public static final String JSF_SERVLET_CLASS = "javax.faces.webapp.FacesServlet"; //$NON-NLS-1$
-	public static final String JSF_CONFIG_CONTEXT_PARAM = "javax.faces.CONFIG_FILES"; //$NON-NLS-1$
-	public static final String JSF_DEFAULT_CONFIG_PATH = "/WEB-INF/faces-config.xml"; //$NON-NLS-1$
-
-	/**
-	 * Convenience method for getting writeable WebApp model
-	 * @param IProject
-	 * @return WebArtifactEdit
-	 */
-	public static WebArtifactEdit getWebArtifactEditForWrite(IProject project) {
-		return WebArtifactEdit.getWebArtifactEditForWrite(project);
-	}
-
-	/**
-	 * Convenience method for getting read-only WebApp model
-	 * @param IProject
-	 * @return WebArtifactEdit
-	 */
-	public static WebArtifactEdit getWebArtifactEditForRead(IProject project) {
-		return WebArtifactEdit.getWebArtifactEditForRead(project);
-	}
-
-	/**
-	 * @param webApp
-	 * @return Servlet - the JSF Servlet for the specified WebApp or null if not present
-	 */
-	public static Servlet findJSFServlet(WebApp webApp) {
-		Servlet servlet = null;
-		Iterator it = webApp.getServlets().iterator();
-		while (it.hasNext()) {
-			servlet = (Servlet) it.next();
-			if (servlet.getWebType().isServletType()) {
-				if (((ServletType) servlet.getWebType()).getClassName().equals(
-						JSF_SERVLET_CLASS)) {
-					break;
-				}
-			} else if (servlet.getWebType().isJspType()) {
-				if (((JSPType) servlet.getWebType()).getJspFile().equals(
-						JSF_SERVLET_CLASS)) {
-					break;
-				}
-			}
-		}
-		return servlet;
-	}
-
-	/**
-	 * Creates a stubbed JSF configuration file for specified JSF version and path
-	 * @param String jsfVersion
-	 * @param String configPath
-	 */
-	public static void createConfigFile(String jsfVersion, IPath configPath) {
-		FileOutputStream os = null;
-		PrintWriter pw = null;
-		final String QUOTE = new String(new char[] { '"' });
-		try {
-			IPath dirPath = configPath.removeLastSegments(1);
-			dirPath.toFile().mkdirs();
-			File file = configPath.toFile();
-			file.createNewFile();
-			os = new FileOutputStream(file);
-			pw = new PrintWriter(os);
-			pw.write("<?xml version=" + QUOTE + "1.0" + QUOTE + " encoding=" //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-					+ QUOTE + "UTF-8" + QUOTE + "?>\n\n"); //$NON-NLS-1$ //$NON-NLS-2$
-
-			if (jsfVersion.equals("1.1")) { //$NON-NLS-1$
-				pw.write("<!DOCTYPE faces-config PUBLIC\n"); //$NON-NLS-1$
-				pw
-						.write("    " //$NON-NLS-1$
-								+ QUOTE
-								+ "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN" //$NON-NLS-1$
-								+ QUOTE + "\n"); //$NON-NLS-1$
-				pw.write("    " + QUOTE //$NON-NLS-1$
-						+ "http://java.sun.com/dtd/web-facesconfig_1_1.dtd" //$NON-NLS-1$
-						+ QUOTE + ">\n\n"); //$NON-NLS-1$
-
-				pw.write("<faces-config>\n\n"); //$NON-NLS-1$
-				pw.write("</faces-config>\n"); //$NON-NLS-1$
-			} else if (jsfVersion.equals("1.2")) { //$NON-NLS-1$
-				pw.write("<faces-config\n"); //$NON-NLS-1$
-				pw.write("    " + "xmlns=" + QUOTE //$NON-NLS-1$ //$NON-NLS-2$
-						+ "http://java.sun.com/xml/ns/j2ee" + QUOTE + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
-				pw.write("    " + "xmlns:xsi=" + QUOTE //$NON-NLS-1$ //$NON-NLS-2$
-						+ "http://www.w3.org/2001/XMLSchema-instance" + QUOTE //$NON-NLS-1$
-						+ "\n"); //$NON-NLS-1$
-				pw
-						.write("    " //$NON-NLS-1$
-								+ "xsi:schemaLocation=" //$NON-NLS-1$
-								+ QUOTE
-								+ "http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-facesconfig_1_2.xsd" //$NON-NLS-1$
-								+ QUOTE + "\n"); //$NON-NLS-1$
-				pw.write("    " + "version=" + QUOTE + "1.2" + QUOTE + ">\n\n"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-				pw.write("</faces-config>\n"); //$NON-NLS-1$
-			}
-
-			pw.close();
-			pw = null;
-		} catch (FileNotFoundException e) {
-			JSFCorePlugin.log(IStatus.ERROR, Messages.JSFUtils_ErrorCreatingConfigFile, e);
-		} catch (IOException e) {
-			JSFCorePlugin.log(IStatus.ERROR, Messages.JSFUtils_ErrorCreatingConfigFile, e);
-		} finally {
-			if (pw != null)
-				pw.close();
-			if (os != null) {
-				try {
-					os.close();
-				} catch (IOException e) {
-					JSFCorePlugin.log(IStatus.ERROR, Messages.JSFUtils_ErrorClosingConfigFile, e);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Creates servlet reference in WebApp if not present or updates servlet name if found
-	 * using the passed configuration.
-	 * 
-	 * @param WebApp webApp
-	 * @param IDataModel config
-	 * @param Servlet servlet
-	 * @return Servlet servlet - if passed servlet was null, will return created servlet
-	 */
-	public static Servlet createOrUpdateServletRef(WebApp webApp,
-			IDataModel config, Servlet servlet) {
-		String displayName = config.getStringProperty(IJSFFacetInstallDataModelProperties.SERVLET_NAME);
-
-		if (servlet == null) {
-			// Create the servlet instance and set up the parameters from data
-			// model
-			servlet = WebapplicationFactory.eINSTANCE.createServlet();
-			servlet.setServletName(displayName);
-
-			ServletType servletType = WebapplicationFactory.eINSTANCE
-					.createServletType();
-			servletType.setClassName(JSF_SERVLET_CLASS);
-			servlet.setWebType(servletType);
-			servlet.setLoadOnStartup(new Integer(1));
-			// Add the servlet to the web application model
-			webApp.getServlets().add(servlet);
-		} else {
-			// update
-			servlet.setServletName(displayName);
-			servlet.setLoadOnStartup(new Integer(1));
-		}
-		return servlet;
-	}
-
-	/**
-	 * Creates servlet-mappings for the servlet
-	 * 
-	 * @param WebApp webApp
-	 * @param List urlMappingList - list of string values to  be used in url-pattern for servlet-mapping
-	 * @param Servlet servlet
-	 */
-	public static void setUpURLMappings(WebApp webApp, List urlMappingList,
-			Servlet servlet) {
-		// Add mappings
-		Iterator it = urlMappingList.iterator();
-		while (it.hasNext()) {
-			String pattern = (String) it.next();
-			ServletMapping mapping = WebapplicationFactory.eINSTANCE
-					.createServletMapping();
-			mapping.setServlet(servlet);
-			mapping.setName(servlet.getServletName());
-			mapping.setUrlPattern(pattern);
-			webApp.getServletMappings().add(mapping);
-		}
-	}
-	
-	/**
-	 * Removes servlet-mappings for servlet using servlet-name.
-	 * @param WebApp webApp
-	 * @param Servlet servlet
-	 */
-	public static void removeURLMappings(WebApp webApp, Servlet servlet) {
-		String servletName = servlet.getServletName();
-		if (servletName != null) {
-			Iterator oldMappings = webApp.getServletMappings().iterator();
-			while (oldMappings.hasNext()) {
-				ServletMapping mapping = (ServletMapping) oldMappings.next();
-				if (mapping.getServlet().getServletName()
-						.equals(servletName)) {
-					webApp.getServletMappings().remove(mapping);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Creates or updates config file context-param in v 2.3 WebApp if non default configuration file is specified.
-	 * @param WebApp webApp
-	 * @param IDataModel config
-	 */
-	public static void setupConfigFileContextParamForV2_3(WebApp webApp,
-			IDataModel config) {
-		// if not default name and location, then add context param
-		ContextParam cp = null;
-		ContextParam foundCP = null;
-		boolean found = false;
-		if (!config.getStringProperty(IJSFFacetInstallDataModelProperties.CONFIG_PATH).equals(JSF_DEFAULT_CONFIG_PATH)) {
-			// check to see if present
-			Iterator it = webApp.getContexts().iterator();
-			while (it.hasNext()) {
-				cp = (ContextParam) it.next();
-				if (cp.getParamName().equals(JSF_CONFIG_CONTEXT_PARAM)) {
-					foundCP = cp;
-					found = true;
-				}
-			}
-			if (!found) {
-				cp = WebapplicationFactory.eINSTANCE.createContextParam();
-				cp.setParamName(JSF_CONFIG_CONTEXT_PARAM);
-				cp.setParamValue(config.getStringProperty(IJSFFacetInstallDataModelProperties.CONFIG_PATH));
-				webApp.getContexts().add(cp);
-			} else {
-				cp = foundCP;
-				if (cp.getParamValue().indexOf(config.getStringProperty(IJSFFacetInstallDataModelProperties.CONFIG_PATH)) < 0) {
-					String curVal = cp.getParamValue();
-					String val = config.getStringProperty(IJSFFacetInstallDataModelProperties.CONFIG_PATH);
-					if (curVal != null || !curVal.trim().equals("")) { //$NON-NLS-1$
-						val = curVal + ",\n" + val; //$NON-NLS-1$
-					}
-					cp.setParamValue(val);
-				}
-			}
-		}
-	}
-	/**
-	 * Creates or updates config file context-param in v2.4 WebApp  if non default configuration file is specified.
-	 * @param WebApp webApp
-	 * @param IDataModel config
-	 */
-	public static void setupConfigFileContextParamForV2_4(WebApp webApp,
-			IDataModel config) {
-		// if not default name and location, then add context param
-		ParamValue foundCP = null;
-		ParamValue cp = null;
-		boolean found = false;
-		if (!config.getStringProperty(IJSFFacetInstallDataModelProperties.CONFIG_PATH).equals(JSF_DEFAULT_CONFIG_PATH)) {
-			// check to see if present
-			Iterator it = webApp.getContextParams().iterator();
-			while (it.hasNext()) {
-				cp = (ParamValue) it.next();
-				if (cp.getName().equals(JSF_CONFIG_CONTEXT_PARAM)) {
-					foundCP = cp;
-					found = true;
-				}
-			}
-			if (!found) {
-				ParamValue pv = CommonFactory.eINSTANCE.createParamValue();
-				pv.setName(JSF_CONFIG_CONTEXT_PARAM);
-				pv.setValue(config.getStringProperty(IJSFFacetInstallDataModelProperties.CONFIG_PATH));
-				webApp.getContextParams().add(pv);
-			} else {
-				cp = foundCP;
-				if (cp.getValue().indexOf(config.getStringProperty(IJSFFacetInstallDataModelProperties.CONFIG_PATH)) < 0) {
-					String curVal = cp.getValue();
-					String val = config.getStringProperty(IJSFFacetInstallDataModelProperties.CONFIG_PATH);
-					if (curVal != null || !curVal.trim().equals("")) { //$NON-NLS-1$
-						val = curVal + ",\n" + val; //$NON-NLS-1$
-					}
-					cp.setValue(val);
-				}
-			}
-		}
-	}
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/AbstractJSFAppConfigLocater.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/AbstractJSFAppConfigLocater.java
deleted file mode 100644
index 8954100..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/AbstractJSFAppConfigLocater.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*******************************************************************************
- * 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:
- *    Ian Trimble - initial API and implementation
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.core.internal.provisional.jsfappconfig;
-
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.LinkedHashSet;
-import java.util.Set;
-
-/**
- * Abstract implementation of {@link IJSFAppConfigLocater} that provides common
- * locater functionality. {@link IJSFAppConfigLocater} implementations should
- * extend this class or provide similar functionality.
- * 
- * @author Ian Trimble - Oracle
- */
-public abstract class AbstractJSFAppConfigLocater implements IJSFAppConfigLocater {
-
-	/**
-	 * {@link JSFAppConfigManager} instance to which this locater belongs.
-	 */
-	protected JSFAppConfigManager manager = null;
-
-	/**
-	 * Set of known {@link IJSFAppConfigProvider} instances.
-	 */
-	protected Set configProviders = new LinkedHashSet();
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jst.jsf.core.internal.provisional.jsfappconfig.IJSFAppConfigLocater#setJSFAppConfigManager(org.eclipse.jst.jsf.core.internal.provisional.jsfappconfig.JSFAppConfigManager)
-	 */
-	public void setJSFAppConfigManager(JSFAppConfigManager manager) {
-		this.manager = manager;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jst.jsf.core.internal.provisional.jsfappconfig.IJSFAppConfigLocater#startLocating()
-	 */
-	public abstract void startLocating();
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jst.jsf.core.internal.provisional.jsfappconfig.IJSFAppConfigLocater#stopLocating()
-	 */
-	public abstract void stopLocating();
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jst.jsf.core.internal.provisional.jsfappconfig.IJSFAppConfigLocater#getJSFAppConfigProviders()
-	 */
-	public Set getJSFAppConfigProviders() {
-		return configProviders;
-	}
-
-	/**
-	 * Adds an {@link IJSFAppConfigProvider} instance to the set of known
-	 * instances and notifies {@link JSFAppConfigManager} instance of the
-	 * addition if successful.
-	 * 
-	 * @param configProvider {@link IJSFAppConfigProvider} instance to be
-	 * added.
-	 * @return true if instance was added, else false.
-	 */
-	protected boolean addConfigProvider(IJSFAppConfigProvider configProvider) {
-		boolean added = configProviders.add(configProvider);
-		if (added && manager != null) {
-			manager.notifyJSFAppConfigProvidersChangeListeners(
-					configProvider,
-					JSFAppConfigProvidersChangeEvent.ADDED);
-		}
-		return added;
-	}
-
-	/**
-	 * Removes an {@link IJSFAppConfigProvider} instance from the set of known
-	 * instances and notifies {@link JSFAppConfigManager} instance of the
-	 * removal if successful.
-	 * 
-	 * @param configProvider {@link IJSFAppConfigProvider} instance to be
-	 * removed.
-	 * @return true if instance was removed, else false.
-	 */
-	protected boolean removeConfigProvider(IJSFAppConfigProvider configProvider) {
-		if (configProvider != null) {
-			configProvider.releaseFacesConfigModel();
-		}
-		boolean removed = configProviders.remove(configProvider);
-		if (removed && manager != null) {
-			manager.notifyJSFAppConfigProvidersChangeListeners(
-					configProvider,
-					JSFAppConfigProvidersChangeEvent.REMOVED);
-		}
-		return removed;
-	}
-
-	/**
-	 * Updates known set of {@link IJSFAppConfigProvider} instances by removing
-	 * instances that are in the existing set but not in the passed set and
-	 * adding instances that are in the passed set but not in the existing set.
-	 * Instances that are in both the existing set and the passed set are left
-	 * unchanged. The {@link JSFAppConfigManager} is notified of removals and
-	 * additions, and no notification is sent for instances that are left
-	 * unchanged.
-	 * 
-	 * @param newConfigProviders New set of {@link IJSFAppConfigProvider}
-	 * instances. 
-	 */
-	protected void updateConfigProviders(Set newConfigProviders) {
-		if (newConfigProviders != null) {
-			LinkedHashSet oldConfigProviders = new LinkedHashSet();
-			//iterate over existing set
-			Iterator itConfigProviders = configProviders.iterator();
-			while (itConfigProviders.hasNext()) {
-				IJSFAppConfigProvider configProvider = (IJSFAppConfigProvider)itConfigProviders.next();
-				//remove provider from new set if it is already in existing set
-				if (!newConfigProviders.remove(configProvider)) {
-					//stage removal of existing provider that is not in new set
-					oldConfigProviders.add(configProvider);
-				}
-			}
-			//remove providers that are not in new set from existing set
-			Iterator itOldConfigProviders = oldConfigProviders.iterator();
-			while (itOldConfigProviders.hasNext()) {
-				IJSFAppConfigProvider configProvider = (IJSFAppConfigProvider)itOldConfigProviders.next();
-				//call removeConfigProvider(...) method so manager's listeners are notified
-				removeConfigProvider(configProvider);
-			}
-			//add providers that are still in new set to existing set
-			Iterator itNewConfigProviders = newConfigProviders.iterator();
-			while (itNewConfigProviders.hasNext()) {
-				IJSFAppConfigProvider configProvider = (IJSFAppConfigProvider)itNewConfigProviders.next();
-				//call addConfigProvider(...) method so manager's listeners are notified
-				addConfigProvider(configProvider);
-			}
-		}
-	}
-
-	/**
-	 * Removes all {@link IJSFAppConfigProvider} instances from the known set,
-	 * sending notification of all removals to the {@link JSFAppConfigManager}
-	 * instance.
-	 */
-	protected void removeAllConfigProviders() {
-		updateConfigProviders(Collections.EMPTY_SET);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see java.lang.Object#finalize()
-	 */
-	protected void finalize() {
-		removeAllConfigProviders();
-	}
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/ArtifactEditJSFAppConfigProvider.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/ArtifactEditJSFAppConfigProvider.java
deleted file mode 100644
index 81d0f15..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/ArtifactEditJSFAppConfigProvider.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*******************************************************************************
- * 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:
- *    Ian Trimble - initial API and implementation
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.core.internal.provisional.jsfappconfig;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jst.jsf.facesconfig.emf.FacesConfigType;
-import org.eclipse.jst.jsf.facesconfig.util.FacesConfigArtifactEdit;
-
-/**
- * ArtifactEditJSFAppConfigProvider uses FacesConfigArtifactEdit to provide
- * the root element of an application configuration model.
- * 
- * @author Ian Trimble - Oracle
- */
-public class ArtifactEditJSFAppConfigProvider implements IJSFAppConfigProvider {
-
-	/**
-	 * IFile instance that represents an application configuration resource
-	 * file.
-	 */
-	protected IFile appConfigFile = null;
-
-	/**
-	 * FacesConfigArtifactEdit instance used to get the application
-	 * configuration model.
-	 */
-	protected FacesConfigArtifactEdit facesConfigArtifactEdit = null;
-
-	/**
-	 * Creates an instance, storing the passed IFile instance for subsequent
-	 * processing.
-	 * 
-	 * @param appConfigFile IFile instance that represents an application
-	 * configuration resource file
-	 */
-	public ArtifactEditJSFAppConfigProvider(IFile appConfigFile) {
-		this.appConfigFile = appConfigFile;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jst.jsf.core.internal.provisional.jsfappconfig.IJSFAppConfigProvider#getFacesConfigModel()
-	 */
-	public FacesConfigType getFacesConfigModel() {
-		FacesConfigType facesConfig = null;
-		if (appConfigFile != null) {
-			IProject project = appConfigFile.getProject();
-			IPath appConfigFilePath = JSFAppConfigUtils.getWebContentFolderRelativePath(appConfigFile);
-			if (appConfigFilePath != null) {
-				facesConfigArtifactEdit = FacesConfigArtifactEdit.getFacesConfigArtifactEditForRead(project, appConfigFilePath.toString());
-				if (facesConfigArtifactEdit != null) {
-					facesConfig = facesConfigArtifactEdit.getFacesConfig();
-				}
-			}
-		}
-		return facesConfig;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jst.jsf.core.internal.provisional.jsfappconfig.IJSFAppConfigProvider#releaseFacesConfigModel()
-	 */
-	public void releaseFacesConfigModel() {
-		if (facesConfigArtifactEdit != null) {
-			facesConfigArtifactEdit.dispose();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public boolean equals(Object otherObject) {
-		boolean equals = false;
-		if (otherObject != null && otherObject instanceof ArtifactEditJSFAppConfigProvider) {
-			IFile otherAppConfigFile = ((ArtifactEditJSFAppConfigProvider)otherObject).appConfigFile;
-			if (appConfigFile != null) {
-				equals = appConfigFile.equals(otherAppConfigFile);
-			} else {
-				equals = otherAppConfigFile == null;
-			}
-		}
-		return equals;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see java.lang.Object#hashCode()
-	 */
-	public int hashCode() {
-		return appConfigFile != null ? appConfigFile.hashCode() : 0;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see java.lang.Object#toString()
-	 */
-	public String toString() {
-		StringBuffer sb = new StringBuffer("ArtifactEditJSFAppConfigProvider["); //$NON-NLS-1$
-		if (appConfigFile != null) {
-			sb.append(appConfigFile.toString());
-		} else {
-			sb.append("null"); //$NON-NLS-1$
-		}
-		sb.append("]"); //$NON-NLS-1$
-		return sb.toString();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see java.lang.Object#finalize()
-	 */
-	protected void finalize() {
-		releaseFacesConfigModel();
-	}
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/ContextParamSpecifiedJSFAppConfigLocater.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/ContextParamSpecifiedJSFAppConfigLocater.java
deleted file mode 100644
index fedc6c6..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/ContextParamSpecifiedJSFAppConfigLocater.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * 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:
- *    Ian Trimble - initial API and implementation
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.core.internal.provisional.jsfappconfig;
-
-import java.util.List;
-
-/**
- * ContextParamSpecifiedJSFAppConfigLocater attempts to locate application
- * configuration files specified by the JSF CONFIG_FILES context parameter.
- * 
- * @author Ian Trimble - Oracle
- */
-public class ContextParamSpecifiedJSFAppConfigLocater extends WebContentRelativeJSFAppConfigLocater {
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.jst.jsf.core.internal.provisional.jsfappconfig.AbstractJSFAppConfigLocater#startLocating()
-	 */
-	public void startLocating() {
-		locateProviders();
-		//TODO: add adapter
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.jst.jsf.core.internal.provisional.jsfappconfig.AbstractJSFAppConfigLocater#stopLocating()
-	 */
-	public void stopLocating() {
-		//TODO: remove adapter
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.jst.jsf.core.internal.provisional.jsfappconfig.WebContentRelativeJSFAppConfigLocater#getFilenames()
-	 */
-	protected List getFilenames() {
-		return JSFAppConfigUtils.getConfigFilesFromContextParam(manager.getProject());
-	}
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/DefaultJSFAppConfigLocater.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/DefaultJSFAppConfigLocater.java
deleted file mode 100644
index fcc8fd0..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/DefaultJSFAppConfigLocater.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * 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:
- *    Ian Trimble - initial API and implementation
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.core.internal.provisional.jsfappconfig;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * DefaultJSFAppConfigLocater attempts to locate the default application
- * configuration file, located at "/WEB-INF/faces-config.xml".
- * 
- * @author Ian Trimble - Oracle
- */
-public class DefaultJSFAppConfigLocater extends WebContentRelativeJSFAppConfigLocater {
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.jst.jsf.core.internal.provisional.jsfappconfig.AbstractJSFAppConfigLocater#startLocating()
-	 */
-	public void startLocating() {
-		locateProviders();
-		//TODO: add listener
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.jst.jsf.core.internal.provisional.jsfappconfig.AbstractJSFAppConfigLocater#stopLocating()
-	 */
-	public void stopLocating() {
-		//TODO: remove listener
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.jst.jsf.core.internal.provisional.jsfappconfig.WebContentRelativeJSFAppConfigLocater#getFilenames()
-	 */
-	protected List getFilenames() {
-		List filenames = new ArrayList();
-		filenames.add("WEB-INF/faces-config.xml"); //$NON-NLS-1$
-		return filenames;
-	}
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/IJSFAppConfigLocater.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/IJSFAppConfigLocater.java
deleted file mode 100644
index 1e1bbbb..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/IJSFAppConfigLocater.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * 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:
- *    Ian Trimble - initial API and implementation
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.core.internal.provisional.jsfappconfig;
-
-import java.util.Set;
-
-/**
- * IJSFAppConfigLocater is the interface that Objects capable of locating
- * and providing JSF application configuration resources must implement.
- * 
- * @author Ian Trimble - Oracle
- */
-public interface IJSFAppConfigLocater {
-
-	/**
-	 * Sets the {@link JSFAppConfigManager} instance to which this locater
-	 * belongs.
-	 * 
-	 * @param manager {@link JSFAppConfigManager} instance to be set.
-	 */
-	public void setJSFAppConfigManager(JSFAppConfigManager manager);
-
-	/**
-	 * Starts locating JSF application configuration resources.
-	 */
-	public void startLocating();
-
-	/**
-	 * Stops locating JSF application configuration resources.
-	 */
-	public void stopLocating();
-
-	/**
-	 * Gets the set of {@link IJSFAppConfigProvider} instances that this
-	 * locater has located.
-	 * 
-	 * @return set of {@link IJSFAppConfigProvider} instances.
-	 */
-	public Set getJSFAppConfigProviders();
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/IJSFAppConfigProvider.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/IJSFAppConfigProvider.java
deleted file mode 100644
index 0403c84..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/IJSFAppConfigProvider.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * 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:
- *    Ian Trimble - initial API and implementation
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.core.internal.provisional.jsfappconfig;
-
-import org.eclipse.jst.jsf.facesconfig.emf.FacesConfigType;
-
-/**
- * IJSFAppConfigProvider is the interface that Objects capable of providing
- * JSF application configuration models must implement.
- * 
- * @author Ian Trimble - Oracle
- */
-public interface IJSFAppConfigProvider {
-
-	/**
-	 * Gets the root element of the application configuration model for read
-	 * access.
-	 * 
-	 * @return FacesConfigType instance, which is the root element of an
-	 * application configuration model.
-	 */
-	public FacesConfigType getFacesConfigModel();
-
-	/**
-	 * Releases resources associated with acquiring the application
-	 * configuration model (if any).
-	 */
-	public void releaseFacesConfigModel();
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/IJSFAppConfigProvidersChangeListener.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/IJSFAppConfigProvidersChangeListener.java
deleted file mode 100644
index 7bbf231..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/IJSFAppConfigProvidersChangeListener.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * 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:
- *    Ian Trimble - initial API and implementation
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.core.internal.provisional.jsfappconfig;
-
-/**
- * Interface that an Object wishing to be notified about changes to the Set of
- * IJSFAppConfigProvider instances implements.
- * 
- * @author Ian Trimble - Oracle.
- */
-public interface IJSFAppConfigProvidersChangeListener {
-
-	/**
-	 * Callback method indicating a change in the Set of JSFAppConfigProvider
-	 * instances.
-	 * 
-	 * @param event JSFAppConfigProvidersChangeEvent instance.
-	 */
-	public void changedJSFAppConfigProviders(JSFAppConfigProvidersChangeEvent event);
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/JARFileJSFAppConfigProvider.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/JARFileJSFAppConfigProvider.java
deleted file mode 100644
index 205f465..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/JARFileJSFAppConfigProvider.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*******************************************************************************
- * 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:
- *    Ian Trimble - initial API and implementation
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.core.internal.provisional.jsfappconfig;
-
-import java.io.IOException;
-import java.util.Collections;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.jst.jsf.core.internal.JSFCorePlugin;
-import org.eclipse.jst.jsf.facesconfig.emf.FacesConfigType;
-import org.eclipse.jst.jsf.facesconfig.util.FacesConfigResourceFactory;
-import org.eclipse.wst.common.internal.emf.resource.EMF2SAXRendererFactory;
-
-/**
- * JARFileJSFAppConfigProvider provides the root element of an application
- * configuration model by loading the model from a /META-INF/faces-config.xml
- * entry in a JAR file.
- * 
- * @author Ian Trimble - Oracle
- */
-public class JARFileJSFAppConfigProvider implements IJSFAppConfigProvider {
-
-	/**
-	 * Prefix required to turn filename into a JAR URI.
-	 */
-	public static final String JARFILE_URI_PREFIX = "jar:file:///";
-
-	/**
-	 * Suffix required to turn filename into a JAR URI.
-	 */
-	public static final String FACES_CONFIG_IN_JAR_SUFFIX = "!/META-INF/faces-config.xml";
-
-	/**
-	 * Name of a JAR file that contains a /META-INF/faces-config.xml entry.
-	 */
-	protected String filename = null;
-
-	/**
-	 * Cached {@link FacesConfigType} instance.
-	 */
-	protected FacesConfigType facesConfig = null;
-
-	/**
-	 * Creates an instance, storing the passed IProject instance and file name
-	 * String to be used for subsequent processing.
-	 * 
-	 * @param project IProject instance who's classpath contains this JAR file.
-	 * @param filename Name of a JAR file that contains a
-	 * /META-INF/faces-config.xml entry.
-	 */
-	public JARFileJSFAppConfigProvider(String filename) {
-		this.filename = filename;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jst.jsf.core.internal.provisional.jsfappconfig.IJSFAppConfigProvider#getFacesConfigModel()
-	 */
-	public FacesConfigType getFacesConfigModel() {
-		if (facesConfig == null) {
-			if (filename != null) {
-				StringBuffer sb = new StringBuffer();
-				sb.append(JARFILE_URI_PREFIX);
-				sb.append(filename);
-				sb.append(FACES_CONFIG_IN_JAR_SUFFIX);
-				URI jarFileURI = URI.createURI(sb.toString());
-				FacesConfigResourceFactory resourceFactory = new FacesConfigResourceFactory(EMF2SAXRendererFactory.INSTANCE);
-				Resource resource = resourceFactory.createResource(jarFileURI);
-				try {
-					resource.load(Collections.EMPTY_MAP);
-					if (resource != null) {
-						EList resourceContents = resource.getContents();
-						if (resourceContents != null && resourceContents.size() > 0) {
-							facesConfig = (FacesConfigType)resourceContents.get(0);
-						}
-					}
-				} catch(IOException ioe) {
-					//log error
-					JSFCorePlugin.log(IStatus.ERROR, ioe.getLocalizedMessage(), ioe);
-				}
-			}
-		}
-		return facesConfig;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jst.jsf.core.internal.provisional.jsfappconfig.IJSFAppConfigProvider#releaseFacesConfigModel()
-	 */
-	public void releaseFacesConfigModel() {
-		facesConfig = null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public boolean equals(Object otherObject) {
-		boolean equals = false;
-		if (otherObject != null && otherObject instanceof JARFileJSFAppConfigProvider) {
-			String otherFilename = ((JARFileJSFAppConfigProvider)otherObject).filename;
-			if (filename != null) {
-				equals = filename.equals(otherFilename);
-			} else {
-				equals = otherFilename == null;
-			}
-		}
-		return equals;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see java.lang.Object#hashCode()
-	 */
-	public int hashCode() {
-		return filename != null ? filename.hashCode() : 0;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see java.lang.Object#toString()
-	 */
-	public String toString() {
-		StringBuffer sb = new StringBuffer("JARFileJSFAppConfigProvider["); //$NON-NLS-1$
-		if (filename != null) {
-			sb.append(filename);
-		} else {
-			sb.append("null"); //$NON-NLS-1$
-		}
-		sb.append("]"); //$NON-NLS-1$
-		return sb.toString();
-	}
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/JSFAppConfigManager.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/JSFAppConfigManager.java
deleted file mode 100644
index 750180b..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/JSFAppConfigManager.java
+++ /dev/null
@@ -1,402 +0,0 @@
-/*******************************************************************************
- * 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:
- *    Ian Trimble - initial API and implementation
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.core.internal.provisional.jsfappconfig;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.QualifiedName;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.jst.jsf.core.internal.JSFCorePlugin;
-import org.eclipse.jst.jsf.facesconfig.emf.FacesConfigType;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-
-/**
- * JSFAppConfigManager provides an entry point to an entire JSF application
- * configuration, which is defined in one or more application configuration
- * resource files.
- * 
- * @author Ian Trimble - Oracle
- */
-public class JSFAppConfigManager {
-
-	/**
-	 * Key that is used for the IProject instance's session property that
-	 * holds a JSFAppConfigManager instance.
-	 */
-	public static final QualifiedName KEY_SESSIONPROPERTY =
-		new QualifiedName(JSFCorePlugin.PLUGIN_ID, "JSFAppConfigManager"); //$NON-NLS-1$
-
-	/**
-	 * IProject instance to which this JSFAppConfigManager instance is keyed.
-	 */
-	protected IProject project = null;
-
-	/**
-	 * Collection of {@link IJSFAppConfigLocater} instances.
-	 */
-	protected ArrayList configLocaters = null;
-
-	/**
-	 * Collection of {@link IJSFAppConfigProvidersChangeListener} instances.
-	 */
-	protected ArrayList configProvidersChangeListeners = null;
-
-	/**
-	 * Gets a JSFAppConfigManager instance that is keyed to the passed IProject
-	 * parameter. May return null if the project is not valid or if a
-	 * CoreException is thrown while attempting to get or set the instance as
-	 * a session property.
-	 * 
-	 * @param project IProject instance to which the returned
-	 * JSFAppConfigManager instance is keyed
-	 * @return JSFAppConfigManager instance, or null
-	 */
-	public static JSFAppConfigManager getInstance(IProject project) {
-		JSFAppConfigManager manager = null;
-		if (isValidProject(project)) {
-			manager = getFromSessionProperty(project);
-			if (manager == null) {
-				manager = new JSFAppConfigManager(project);
-			}
-		}
-		return manager;
-	}
-
-	/**
-	 * Tests if the passed IProject instance is valid in the following ways:
-	 * <ul>
-	 * <li>project is not null and is accessible</li>
-	 * <li>project has the "jst.jsf" facet set on it</li>
-	 * </ul>
-	 * 
-	 * @param project IProject instance to be tested
-	 * @return true if the IProject instance is valid, else false
-	 */
-	protected static boolean isValidProject(IProject project) {
-		boolean isValid = false;
-		//check for null or inaccessible project
-		if (project != null && project.isAccessible()) {
-			//check for "jst.jsf" facet on project
-			try {
-				IFacetedProject facetedProject = ProjectFacetsManager.create(project);
-				if (facetedProject != null) {
-					Set projectFacets = facetedProject.getProjectFacets();
-					Iterator itProjectFacets = projectFacets.iterator();
-					while (itProjectFacets.hasNext()) {
-						IProjectFacetVersion projectFacetVersion = (IProjectFacetVersion)itProjectFacets.next();
-						IProjectFacet projectFacet = projectFacetVersion.getProjectFacet();
-						if ("jst.jsf".equals(projectFacet.getId())) { //$NON-NLS-1$
-							isValid = true;
-							break;
-						}
-					}
-				}
-			} catch(CoreException ce) {
-				//log error
-				JSFCorePlugin.log(IStatus.ERROR, ce.getLocalizedMessage(), ce);
-			}
-		}
-		return isValid;
-	}
-
-	/**
-	 * Attempts to get a JSFAppConfigManager instance from a session property
-	 * of the passed IProject instance. Will return null if the session
-	 * property has not yet been set.
-	 * 
-	 * @param project IProject instance from which to retrieve the
-	 * JSFAppConfigManager instance
-	 * @return JSFAppConfigManager instance, or null
-	 */
-	protected static JSFAppConfigManager getFromSessionProperty(IProject project) {
-		JSFAppConfigManager manager = null;
-		try {
-			Object obj = project.getSessionProperty(KEY_SESSIONPROPERTY);
-			if (obj != null && obj instanceof JSFAppConfigManager) {
-				manager = (JSFAppConfigManager)obj;
-			}
-		} catch(CoreException ce) {
-			//log error
-			JSFCorePlugin.log(IStatus.ERROR, ce.getLocalizedMessage(), ce);
-		}
-		return manager;
-	}
-
-	/**
-	 * Sets this JSFAppConfigManager instance as a session property of its
-	 * IProject instance.
-	 */
-	protected void setAsSessionProperty() {
-		if (project != null && project.isAccessible()) {
-			try {
-				project.setSessionProperty(KEY_SESSIONPROPERTY, this);
-			} catch(CoreException ce) {
-				//log error
-				JSFCorePlugin.log(IStatus.ERROR, ce.getLocalizedMessage(), ce);
-			}
-		}
-	}
-
-	/**
-	 * Unsets this JSFAppConfigManager instance as a session property of its
-	 * IProject instance.
-	 */
-	protected void unsetAsSessionProperty() {
-		if (project != null && project.isAccessible()) {
-			try {
-				project.setSessionProperty(KEY_SESSIONPROPERTY, null);
-			} catch(CoreException ce) {
-				//log error
-				JSFCorePlugin.log(IStatus.ERROR, ce.getLocalizedMessage(), ce);
-			}
-		}
-	}
-
-	/**
-	 * Constructor is private to prevent direct instantiation; call
-	 * getInstance(IProject).
-	 * 
-	 * @param project IProject instance to which the new JSFAppConfigManager
-	 * instance is keyed.
-	 */
-	private JSFAppConfigManager(IProject project) {
-		this.project = project;
-		initialize();
-	}
-
-	/**
-	 * Gets this instance's IProject instance.
-	 * 
-	 * @return This instance's IProject instance.
-	 */
-	public IProject getProject() {
-		return project;
-	}
-
-	/**
-	 * Initializes instance by:
-	 * <ul>
-	 * 	<li>creating configProvidersChangeListeners collection</li>
-	 * 	<li>creating and populating configLocaters collection</li>
-	 * 	<li>invoking the startLocating() method on all configLocaters</li>
-	 * 	<li>setting instance as a session property of the IProject instance</li>
-	 * </ul>
-	 */
-	protected void initialize() {
-		//create collections
-		configProvidersChangeListeners = new ArrayList();
-		configLocaters = new ArrayList();
-		//populate initial set of locaters
-		populateConfigLocaters();
-		//instruct locaters to start locating
-		startConfigLocaters();
-		//set as session property of project
-		setAsSessionProperty();
-	}
-
-	/**
-	 * Populates configLocaters Set with "built-in" set of
-	 * {@link IJSFAppConfigLocater} implementations.
-	 */
-	protected void populateConfigLocaters() {
-		//default ("/WEB-INF/faces-config.xml") locater
-		IJSFAppConfigLocater defaultConfigLocater = new DefaultJSFAppConfigLocater();
-		defaultConfigLocater.setJSFAppConfigManager(this);
-		configLocaters.add(defaultConfigLocater);
-		//web.xml context-parameter specified locater
-		IJSFAppConfigLocater contextParamConfigLocater = new ContextParamSpecifiedJSFAppConfigLocater();
-		contextParamConfigLocater.setJSFAppConfigManager(this);
-		configLocaters.add(contextParamConfigLocater);
-		//runtime classpath locater
-		IJSFAppConfigLocater classpathConfigLocater = new RuntimeClasspathJSFAppConfigLocater();
-		classpathConfigLocater.setJSFAppConfigManager(this);
-		configLocaters.add(classpathConfigLocater);
-	}
-
-	/**
-	 * Instructs set of {@link IJSFAppConfigLocater} instances to start
-	 * locating JSF application configuration resources.
-	 */
-	protected void startConfigLocaters() {
-		Iterator itConfigLocaters = configLocaters.iterator();
-		while (itConfigLocaters.hasNext()) {
-			IJSFAppConfigLocater configLocater = (IJSFAppConfigLocater)itConfigLocaters.next();
-			configLocater.startLocating();
-		}
-	}
-
-	/**
-	 * Instructs set of {@link IJSFAppConfigLocater} instances to stop
-	 * locating JSF application configuration resources.
-	 */
-	protected void stopConfigLocaters() {
-		Iterator itConfigLocaters = configLocaters.iterator();
-		while (itConfigLocaters.hasNext()) {
-			IJSFAppConfigLocater configLocater = (IJSFAppConfigLocater)itConfigLocaters.next();
-			configLocater.stopLocating();
-		}
-	}
-
-	/**
-	 * Adds an instance of {@link IJSFAppConfigProvidersChangeListener}.
-	 * 
-	 * @param listener An instance of {@link IJSFAppConfigProvidersChangeListener}
-	 * @return true if added, else false
-	 */
-	public boolean addJSFAppConfigProvidersChangeListener(IJSFAppConfigProvidersChangeListener listener) {
-		return configProvidersChangeListeners.add(listener);
-	}
-
-	/**
-	 * Removes an instance of {@link IJSFAppConfigProvidersChangeListener}.
-	 * 
-	 * @param listener an instance of {@link IJSFAppConfigProvidersChangeListener}
-	 * @return true if removed, else false
-	 */
-	public boolean removeJSFAppConfigProvidersChangeListener(IJSFAppConfigProvidersChangeListener listener) {
-		return configProvidersChangeListeners.remove(listener);
-	}
-
-	/**
-	 * Notifies all {@link IJSFAppConfigProvidersChangeListener} instances of
-	 * a change in the Set of {@link IJSFAppConfigProvider} instances.
-	 * 
-	 * @param configProvider {@link IJSFAppConfigProvider} instance that has
-	 * changed
-	 * @param eventType Event type
-	 */
-	public void notifyJSFAppConfigProvidersChangeListeners(IJSFAppConfigProvider configProvider, int eventType) {
-		JSFAppConfigProvidersChangeEvent event = new JSFAppConfigProvidersChangeEvent(configProvider, eventType);
-		Iterator itListeners = configProvidersChangeListeners.iterator();
-		while (itListeners.hasNext()) {
-			IJSFAppConfigProvidersChangeListener listener =
-				(IJSFAppConfigProvidersChangeListener)itListeners.next();
-			listener.changedJSFAppConfigProviders(event);
-		}
-	}
-
-	/**
-	 * Gets all {@link IJSFAppConfigProvider} instances from all
-	 * {@link IJSFAppConfigLocater} instances.
-	 * 
-	 * @return Set of all {@link IJSFAppConfigProvider} instances.
-	 */
-	public Set getJSFAppConfigProviders() {
-		Set allConfigProviders = new LinkedHashSet();
-		Iterator itConfigLocaters = configLocaters.iterator();
-		while (itConfigLocaters.hasNext()) {
-			IJSFAppConfigLocater configLocater = (IJSFAppConfigLocater)itConfigLocaters.next();
-			allConfigProviders.addAll(configLocater.getJSFAppConfigProviders());
-		}
-		return allConfigProviders;
-	}
-
-	/**
-	 * Gets all {@link FacesConfigType} instances from all
-	 * {@link IJSFAppConfigProvider} instances.
-	 * 
-	 * @return List of all {@link FacesConfigType} instances.
-	 */
-	public List getFacesConfigModels() {
-		List facesConfigModels = new ArrayList();
-		Iterator itConfigProviders = getJSFAppConfigProviders().iterator();
-		while (itConfigProviders.hasNext()) {
-			IJSFAppConfigProvider configProvider = (IJSFAppConfigProvider)itConfigProviders.next();
-			FacesConfigType facesConfig = configProvider.getFacesConfigModel();
-			if (facesConfig != null) {
-				facesConfigModels.add(facesConfig);
-			}
-		}
-		return facesConfigModels;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see java.lang.Object#finalize()
-	 */
-	protected void finalize() {
-		//remove session property from project
-		unsetAsSessionProperty();
-		//instruct locaters to stop locating
-		stopConfigLocaters();
-		//clear collections
-		configLocaters.clear();
-		configProvidersChangeListeners.clear();
-	}
-
-	/**
-	 * Gets list of all ManagedBeanType instances from all known faces-config
-	 * models; list may be empty.
-	 * 
-	 * @return List of all ManagedBeanType instances from all known
-	 * faces-config models (list may be empty).
-	 */
-	public List getManagedBeans() {
-		List allManagedBeans = new ArrayList();
-		List facesConfigs = getFacesConfigModels();
-		Iterator itFacesConfigs = facesConfigs.iterator();
-		while (itFacesConfigs.hasNext()) {
-			FacesConfigType facesConfig = (FacesConfigType)itFacesConfigs.next();
-			EList managedBeans = facesConfig.getManagedBean();
-			allManagedBeans.addAll(managedBeans);
-		}
-		return allManagedBeans;
-	}
-
-	/**
-	 * Gets list of all ValidatorType instances from all known faces-config
-	 * models; list may be empty.
-	 * 
-	 * @return List of all ValidatorType instances from all known faces-config
-	 * models (list may be empty).
-	 */
-	public List getValidators() {
-		List allValidators = new ArrayList();
-		List facesConfigs = getFacesConfigModels();
-		Iterator itFacesConfigs = facesConfigs.iterator();
-		while (itFacesConfigs.hasNext()) {
-			FacesConfigType facesConfig = (FacesConfigType)itFacesConfigs.next();
-			EList validators = facesConfig.getValidator();
-			allValidators.addAll(validators);
-		}
-		return allValidators;
-	}
-
-	/**
-	 * Gets list of all ConverterType instances from all known faces-config
-	 * models; list may be empty.
-	 * 
-	 * @return List of all ConverterType instances from all known faces-config
-	 * models (list may be empty).
-	 */
-	public List getConverters() {
-		List allConverters = new ArrayList();
-		List facesConfigs = getFacesConfigModels();
-		Iterator itFacesConfigs = facesConfigs.iterator();
-		while (itFacesConfigs.hasNext()) {
-			FacesConfigType facesConfig = (FacesConfigType)itFacesConfigs.next();
-			EList converters = facesConfig.getConverter();
-			allConverters.addAll(converters);
-		}
-		return allConverters;
-	}
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/JSFAppConfigProvidersChangeEvent.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/JSFAppConfigProvidersChangeEvent.java
deleted file mode 100644
index 138b126..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/JSFAppConfigProvidersChangeEvent.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * 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:
- *    Ian Trimble - initial API and implementation
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.core.internal.provisional.jsfappconfig;
-
-/**
- * JSFAppConfigProvidersChangeEvent provides change information to instances of
- * IJSFAppConfigProvidersChangeListener.
- * 
- * @author Ian Trimble - Oracle
- */
-public class JSFAppConfigProvidersChangeEvent {
-
-	/**
-	 * Event type; instance of IJSFAppConfigProvider was added (value == 1).
-	 */
-	public static final int ADDED = 1;
-
-	/**
-	 * Event type; instance of IJSFAppConfigProvider was removed (value == 2).
-	 */
-	public static final int REMOVED = 2;
-
-	/**
-	 * Instance of IJSFAppConfigProvider that was added or removed.
-	 */
-	protected IJSFAppConfigProvider configProvider = null;
-
-	/**
-	 * Event type.
-	 */
-	protected int eventType;
-
-	/**
-	 * Constructs an instance.
-	 * 
-	 * @param configProvider Instance of IJSFAppConfigProvider that was added
-	 * or removed
-	 * @param eventType Event type
-	 */
-	public JSFAppConfigProvidersChangeEvent(IJSFAppConfigProvider configProvider, int eventType) {
-		this.configProvider = configProvider;
-		this.eventType = eventType;
-	}
-
-	/**
-	 * Gets the instance of IJSFAppConfigProvider that was added or removed.
-	 * 
-	 * @return Instance of IJSFAppConfigProvider that was added or removed
-	 */
-	public IJSFAppConfigProvider getJSFAppConfigProvider() {
-		return configProvider;
-	}
-
-	/**
-	 * Gets the event type.
-	 * 
-	 * @return Event type
-	 */
-	public int getEventType() {
-		return eventType;
-	}
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/JSFAppConfigUtils.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/JSFAppConfigUtils.java
deleted file mode 100644
index ec0f678..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/JSFAppConfigUtils.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*******************************************************************************
- * 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:
- *    Ian Trimble - initial API and implementation
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.core.internal.provisional.jsfappconfig;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.StringTokenizer;
-import java.util.jar.JarEntry;
-import java.util.jar.JarFile;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jst.j2ee.common.ParamValue;
-import org.eclipse.jst.j2ee.internal.J2EEVersionConstants;
-import org.eclipse.jst.j2ee.web.componentcore.util.WebArtifactEdit;
-import org.eclipse.jst.j2ee.webapplication.ContextParam;
-import org.eclipse.jst.j2ee.webapplication.WebApp;
-import org.eclipse.wst.common.componentcore.ComponentCore;
-import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
-import org.eclipse.wst.common.componentcore.resources.IVirtualFolder;
-
-/**
- * JSFAppConfigUtils provides utility methods useful in processing of a JSF
- * application configuration.
- * 
- * @author Ian Trimble - Oracle
- */
-public class JSFAppConfigUtils {
-
-	/**
-	 * Name of JSF CONFIG_FILES context parameter ("javax.faces.CONFIG_FILES").
-	 */
-	public static final String CONFIG_FILES_CONTEXT_PARAM_NAME = "javax.faces.CONFIG_FILES";
-
-	/**
-	 * Location in JAR file of application configuration resource file. 
-	 */
-	public static final String FACES_CONFIG_IN_JAR_PATH = "META-INF/faces-config.xml";
-
-	/**
-	 * Gets an IVirtualFolder instance which represents the root context's
-	 * web content folder.
-	 * 
-	 * @param project IProject instance for which to get the folder.
-	 * @return IVirtualFolder instance which represents the root context's
-	 * web content folder.
-	 */
-	public static IVirtualFolder getWebContentFolder(IProject project) {
-		IVirtualFolder folder = null;
-		IVirtualComponent component = ComponentCore.createComponent(project);
-		if (component != null) {
-			folder = component.getRootFolder();
-		}
-		return folder;
-	}
-
-	/**
-	 * Gets an IPath instance representing the path of the passed IFile
-	 * instance relative to the web content folder.
-	 * 
-	 * @param file IFile instance for which a path is required.
-	 * @return IPath instance representing the path relative to the web content
-	 * folder.
-	 */
-	public static IPath getWebContentFolderRelativePath(IFile file) {
-		IPath path = null;
-		IVirtualFolder webContentFolder = getWebContentFolder(file.getProject());
-		if (webContentFolder != null) {
-			IPath webContentPath = webContentFolder.getProjectRelativePath();
-			IPath filePath = file.getProjectRelativePath();
-			int matchingFirstSegments = webContentPath.matchingFirstSegments(filePath);
-			path = filePath.removeFirstSegments(matchingFirstSegments);
-		}
-		return path;
-	}
-
-	/**
-	 * Gets list of application configuration file names as listed in the JSF
-	 * CONFIG_FILES context parameter ("javax.faces.CONFIG_FILES"). Will return
-	 * an empty list if WebArtifactEdit is null, if WebApp is null, if context
-	 * parameter does not exist, or if trimmed context parameter's value is
-	 * an empty String.
-	 * 
-	 * @param project IProject instance for which to get the context
-	 * parameter's value.
-	 * @return List of application configuration file names as listed in the
-	 * JSF CONFIG_FILES context parameter ("javax.faces.CONFIG_FILES"); list
-	 * may be empty.
-	 */
-	public static List getConfigFilesFromContextParam(IProject project) {
-		ArrayList filesList = new ArrayList();
-		WebArtifactEdit webArtifactEdit = WebArtifactEdit.getWebArtifactEditForRead(project);
-		if (webArtifactEdit != null) {
-			WebApp webApp = webArtifactEdit.getWebApp();
-			if (webApp != null) {
-				String filesString = null;
-				//need to branch here due to model version differences (BugZilla #119442)
-				if (webApp.getVersionID() == J2EEVersionConstants.WEB_2_3_ID) {
-					EList contexts = webApp.getContexts();
-					Iterator itContexts = contexts.iterator();
-					while (itContexts.hasNext()) {
-						ContextParam contextParam = (ContextParam)itContexts.next();
-						if (contextParam.getParamName().equals(CONFIG_FILES_CONTEXT_PARAM_NAME)) {
-							filesString = contextParam.getParamValue();
-							break;
-						}
-					}
-				} else {
-					EList contextParams = webApp.getContextParams();
-					Iterator itContextParams = contextParams.iterator();
-					while (itContextParams.hasNext()) {
-						ParamValue paramValue = (ParamValue)itContextParams.next();
-						if (paramValue.getName().equals(CONFIG_FILES_CONTEXT_PARAM_NAME)) {
-							filesString = paramValue.getValue();
-							break;
-						}
-					}
-				}
-				if (filesString != null && filesString.trim().length() > 0) {
-					StringTokenizer stFilesString = new StringTokenizer(filesString, ",");
-					while (stFilesString.hasMoreTokens()) {
-						String configFile = stFilesString.nextToken().trim();
-						filesList.add(configFile);
-					}
-				}
-			}
-			webArtifactEdit.dispose();
-		}
-		return filesList;
-	}
-
-	/**
-	 * Gets list of JAR file names, where each file name represents a JAR on
-	 * the classpath that contains a /META-INF/faces-config.xml entry. Will
-	 * return an empty list if no such JAR files are located.
-	 * 
-	 * @param project IProject instance for which to scan the classpath.
-	 * @return List of JAR file names, where each file name represents a JAR
-	 * on the classpath that contains a ...META-INF/faces-config.xml entry;
-	 * list may be empty.
-	 * @throws CoreException Thrown when underlying calls into JavaCore fail.
-	 * @throws IOException Thrown when attempt to open JAR to determine if it
-	 * contains a /META-INF/faces-config.xml entry fails.
-	 */
-	public static List getConfigFileJARsFromClasspath(IProject project) throws CoreException, IOException {
-		ArrayList JARsList = new ArrayList();
-		if (project.hasNature(JavaCore.NATURE_ID)) {
-			IJavaProject javaProject = JavaCore.create(project);
-			if (javaProject != null) {
-				IClasspathEntry[] classpathEntries = javaProject.getResolvedClasspath(true);
-				if (classpathEntries != null && classpathEntries.length > 0) {
-					for (int i = 0; i < classpathEntries.length; i++) {
-						IClasspathEntry classpathEntry = classpathEntries[i];
-						if (classpathEntry.getEntryKind() == IClasspathEntry.CPE_LIBRARY) {
-							IPath libraryPath = classpathEntry.getPath();
-							if (libraryPath.getFileExtension() != null && libraryPath.getFileExtension().length() > 0) {
-								//TODO: find better way to determine if workspace must be prepended to path
-								if (libraryPath.getDevice() == null) {
-									IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
-									IPath workspaceRootPath = workspaceRoot.getLocation();
-									libraryPath = workspaceRootPath.append(libraryPath);
-								}
-								String libraryPathString = libraryPath.toString();
-								JarFile jarFile = new JarFile(libraryPathString);
-								if (jarFile != null) {
-									JarEntry jarEntry = jarFile.getJarEntry(FACES_CONFIG_IN_JAR_PATH);
-									if (jarEntry != null) {
-										JARsList.add(libraryPathString);
-									}
-								}
-							}
-						}
-					}
-				}
-			}
-		}
-		return JARsList;
-	}
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/RuntimeClasspathJSFAppConfigLocater.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/RuntimeClasspathJSFAppConfigLocater.java
deleted file mode 100644
index fbec834..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/RuntimeClasspathJSFAppConfigLocater.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * 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:
- *    Ian Trimble - initial API and implementation
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.core.internal.provisional.jsfappconfig;
-
-import java.io.IOException;
-import java.util.Iterator;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jst.jsf.core.internal.JSFCorePlugin;
-
-/**
- * RuntimeClasspathJSFAppConfigLocater attempts to locate application
- * configuration files in JAR files on the runtime classpath. The runtime
- * classpath includes the server runtime classpath and the JAR files that will
- * be deployed to the web application's /WEB-INF/lib folder.
- * 
- * @author Ian Trimble - Oracle
- */
-public class RuntimeClasspathJSFAppConfigLocater extends AbstractJSFAppConfigLocater {
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.jst.jsf.core.internal.provisional.jsfappconfig.AbstractJSFAppConfigLocater#startLocating()
-	 */
-	public void startLocating() {
-		locateProviders();
-		//TODO: add listener
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.jst.jsf.core.internal.provisional.jsfappconfig.AbstractJSFAppConfigLocater#stopLocating()
-	 */
-	public void stopLocating() {
-		//TODO: remove listener
-	}
-
-	/**
-	 * Locates application configuration resources specified in JAR files on
-	 * the runtime classpath, and updates the set of
-	 * {@link IJSFAppConfigProvider} instances accordingly.
-	 */
-	public void locateProviders() {
-		try {
-			List JARs = JSFAppConfigUtils.getConfigFileJARsFromClasspath(manager.getProject());
-			Iterator itJARs = JARs.iterator();
-			Set newConfigProviders = new LinkedHashSet();
-			while (itJARs.hasNext()) {
-				String JARFilename = (String)itJARs.next();
-				JARFileJSFAppConfigProvider configProvider = new JARFileJSFAppConfigProvider(JARFilename);
-				newConfigProviders.add(configProvider);
-			}
-			updateConfigProviders(newConfigProviders);
-		} catch(CoreException ce) {
-			//log error
-			JSFCorePlugin.log(IStatus.ERROR, ce.getLocalizedMessage(), ce);
-		} catch(IOException ioe) {
-			//log error
-			JSFCorePlugin.log(IStatus.ERROR, ioe.getLocalizedMessage(), ioe);
-		}
-	}
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/WebContentRelativeJSFAppConfigLocater.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/WebContentRelativeJSFAppConfigLocater.java
deleted file mode 100644
index 380b7ac..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/WebContentRelativeJSFAppConfigLocater.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * 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:
- *    Ian Trimble - initial API and implementation
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.core.internal.provisional.jsfappconfig;
-
-import java.util.Iterator;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.wst.common.componentcore.resources.IVirtualFolder;
-import org.eclipse.wst.common.componentcore.resources.IVirtualResource;
-
-/**
- * WebContentRelativeJSFAppConfigLocater is an abstract base class that
- * attempts to locate specified application configuration files relative to a
- * web content folder. Subclasses must override the getFilenames() method to
- * return a list of filenames that the locateProviders() method will attempt to
- * locate, and call locateProviders().
- * 
- * @author Ian Trimble - Oracle
- */
-public abstract class WebContentRelativeJSFAppConfigLocater extends AbstractJSFAppConfigLocater {
-
-	/**
-	 * Locates application configuration resources specified by the filenames
-	 * (relative to the web content folder) returned by getFilenames(), and
-	 * updates the set of {@link IJSFAppConfigProvider} instances accordingly.
-	 */
-	public void locateProviders() {
-		IProject project = manager.getProject();
-		IVirtualFolder webContentFolder = JSFAppConfigUtils.getWebContentFolder(project);
-		if (webContentFolder != null) {
-			List filenames = getFilenames();
-			Iterator itFilenames = filenames.iterator();
-			Set newConfigProviders = new LinkedHashSet();
-			while (itFilenames.hasNext()) {
-				String filename = (String)itFilenames.next();
-				IVirtualResource appConfigResource = webContentFolder.findMember(filename);
-				if (appConfigResource != null && appConfigResource.getType() == IVirtualResource.FILE) {
-					IFile file = (IFile)appConfigResource.getUnderlyingResource();
-					if (file != null && file.exists()) {
-						ArtifactEditJSFAppConfigProvider configProvider = new ArtifactEditJSFAppConfigProvider(file);
-						newConfigProviders.add(configProvider);
-					}
-				}
-			}
-			updateConfigProviders(newConfigProviders);
-		}
-	}
-
-	/**
-	 * Gets a list of Strings representing the filenames (relative to the web
-	 * content folder) that locateProviders() will attempt to locate.
-	 * 
-	 * @return A list of Strings representing the filenames (relative to the
-	 * web content folder) that locateProviders() will attempt to locate.
-	 */
-	protected abstract List getFilenames();
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/jsflibraryregistry/InvalidArchiveFilesCreationException.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/jsflibraryregistry/InvalidArchiveFilesCreationException.java
deleted file mode 100644
index 65db247..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/jsflibraryregistry/InvalidArchiveFilesCreationException.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * 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
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.core.jsflibraryregistry;
-
-/**
- * Exception class thrown by PluginProvidedJSFLibraryCreationHelper.
- * 
- * @author Gerry Kessler - Oracle
- */
-public class InvalidArchiveFilesCreationException extends Exception {
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * Creates an instance with the specified message.
-	 * @param msg This instance's message
-	 */
-	public InvalidArchiveFilesCreationException(String msg) {
-		super(msg);
-	}
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/jsflibraryregistry/JSFLibraryArchiveFilesDelegate.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/jsflibraryregistry/JSFLibraryArchiveFilesDelegate.java
deleted file mode 100644
index bb1cd68..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/jsflibraryregistry/JSFLibraryArchiveFilesDelegate.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*******************************************************************************
- * 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
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.core.jsflibraryregistry;
-
-import java.util.Collection;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.ArchiveFile;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistryFactory;
-import org.osgi.framework.Bundle;
-
-/**
- * Abstract delegate class used by jsfLibraries ext-pt to return collection of 
- * ArchiveFiles to PluginProvidedJSFLibraryCreationHelper.
- * 
- * Caller must first setConfigurationElement(IConfigurationElement element)
- * before a call to getArchiveFiles().
- * <br>
- * <em><b>NOTE: experimental and very likely to change.</b></em>
- * 
- * @author Gerry Kessler - Oracle
- */
-public abstract class JSFLibraryArchiveFilesDelegate {
-	
-	protected IConfigurationElement extPtElement;
-	private String libID = null;
-	private IPath pluginPath = null;
-	private String pluginID;
-	private String relativeDestLocation = "WEB-INF/lib"; //$NON-NLS-1$
-
-	/**
-	 * Returns a Collection of <code>org.eclipse.jst.jsf.core.internal.jsflibraryregistry.ArchiveFile</code>
-	 * instances.
-	 * 
-	 * @return A Collection of <code>org.eclipse.jst.jsf.core.internal.jsflibraryregistry.ArchiveFile</code>
-	 * instances
-	 */
-	public abstract Collection getArchiveFiles();
-
-	/**
-	 * Sets the IConfigurationElement instance to be subsequently used to get
-	 * the plugin ID and the name defined for the JSF Library.
-	 * 
-	 * @param extPtElement IConfigurationElement instance
-	 */
-	public final void setConfigurationElement(IConfigurationElement extPtElement){
-		this.extPtElement = extPtElement;
-	}
-
-	/**
-	 * Constructs an instance.
-	 */
-	public JSFLibraryArchiveFilesDelegate() {
-		super();
-	}
-
-	/**
-	 * Sets the relative destination location subsequently used to set the
-	 * corresponding property on each created ArchiveFile.
-	 * 
-	 * @param relPath Relative destination location for ArchiveFile instances
-	 */
-	protected void setRelativeDestinationLocation(String relPath){
-		relativeDestLocation = relPath;
-	}
-	
-	/**
-	 * Returns ArchiveFile where the location is set relative to the plugin.   
-	 * As long as the ArchiveFile is on the local machine somewhere, it should
-	 * be locatable.
-	 *  
-	 * @param relativePathFileName Relative location of the ArchiveFile
-	 * @return ArchiveFile instance.
-	 */
-	protected ArchiveFile createArchiveFile(String relativePathFileName){
-		ArchiveFile file = JSFLibraryRegistryFactory.eINSTANCE.createArchiveFile();
-		file.setRelativeToWorkspace(false);
-		file.setSourceLocation(relativePathFileName);
-		file.setRelativeDestLocation(relativeDestLocation);
-		return file;
-	}
-	
-//	protected ArchiveFile createArchiveFileWithAbsolutePath(String fullPath){
-//		ArchiveFile file = JSFLibraryRegistryFactory.eINSTANCE.createArchiveFile();
-//		file.setRelativeToWorkspace(false);
-//		file.setSourceLocation(fullPath);
-//		file.setRelativeDestLocation(relativeDestLocation);
-//		return file;
-//	}
-
-	/**
-	 * Returns the JSFLibrary ID as set on the extension point.
-	 * 
-	 * @return JSFLibrary ID
-	 */
-	protected String getLibID(){
-		if (libID == null){
-			StringBuffer buf = new StringBuffer(getPluginID());
-			buf.append("/").append(extPtElement.getAttribute(PluginProvidedJSFLibraryCreationHelper.NAME)); //$NON-NLS-1$
-			libID = buf.toString();
-		}
-		return libID;
-	}
-
-	/**
-	 * Returns the plugin's path.
-	 * 
-	 * @return The plugin's path.
-	 */
-	protected IPath getPluginPath(){
-		if (pluginPath == null){
-			Bundle bundle = Platform.getBundle(getPluginID());
-			pluginPath = new Path(bundle.getLocation());
-		}
-		return pluginPath;
-	}
-
-	/**
-	 * Returns the plugin's ID.
-	 * 
-	 * @return The plugin's ID.
-	 */
-	private String getPluginID() {
-		if (pluginID == null){
-			pluginID = extPtElement.getDeclaringExtension().getNamespace();
-		}
-		return pluginID;
-	}
-	
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/jsflibraryregistry/PluginProvidedJSFLibraryCreationHelper.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/jsflibraryregistry/PluginProvidedJSFLibraryCreationHelper.java
deleted file mode 100644
index 61650c8..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/jsflibraryregistry/PluginProvidedJSFLibraryCreationHelper.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*******************************************************************************
- * 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
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.core.jsflibraryregistry;
-
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.jst.jsf.core.internal.JSFCorePlugin;
-import org.eclipse.jst.jsf.core.internal.Messages;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.ArchiveFile;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistryFactory;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFVersion;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.PluginProvidedJSFLibrary;
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Helper class used to create JSF Libraries from the
- * <code>org.eclipse.jst.jsf.core.jsflibraries</code> extension-point.
- * <br>
- * <em><b>NOTE: experimental and very likely to change.</b></em>
- * 
- * @author Gerry Kessler - Oracle
- */
-public final class PluginProvidedJSFLibraryCreationHelper {
-	private IConfigurationElement config_element;
-
-	/**
-	 * Key of the 'name' attribute of the extension point.
-	 */
-	public final static String NAME 		= "name"; //$NON-NLS-1$
-	/**
-	 * Key of the 'isImplementation' attribute of the extension point.
-	 */
-	public final static String IS_IMPL 		= "isImplementation"; //$NON-NLS-1$
-	/**
-	 * Key of the 'maxVersionSupported' attribute of the extension point.
-	 */
-	public final static String VERSION 		= "maxVersionSupported"; //$NON-NLS-1$
-	/**
-	 * Key of the 'archiveFilesDelegate' attribute of the extension point.
-	 */
-	public final static String DELEGATE 	= "archiveFilesDelegate"; //$NON-NLS-1$
-
-	/**
-	 * Creates an instance with the specified IConfigurationElement instance.
-	 * 
-	 * @param jsfLibrary IConfigurationElement instance
-	 */
-	public PluginProvidedJSFLibraryCreationHelper (IConfigurationElement jsfLibrary){
-		this.config_element = jsfLibrary;
-	}
-
-	/**
-	 * Creates a new PluginProvidedJSFLibrary from the JSFLibrary extension point.
-	 * 
-	 * @return PluginProvidedJSFLibrary instance.
-	 */
-	public JSFLibrary create(){
-		PluginProvidedJSFLibrary newLib = JSFLibraryRegistryFactory.eINSTANCE.createPluginProvidedJSFLibrary();
-		newLib.setID(getLibID());
-		newLib.setPluginID(getPluginID());
-		newLib.setName(config_element.getAttribute(NAME));
-		newLib.setImplementation(config_element.getAttribute(IS_IMPL).equals("true") ? true : false); //$NON-NLS-1$		
-		newLib.setJSFVersion(JSFVersion.getJSFVersion(config_element.getAttribute(VERSION)));
-		
-		try {
-			addArchives(newLib);			
-			return newLib;
-		} catch (Exception e) {
-			JSFCorePlugin.log(
-					e,
-					NLS.bind(
-							Messages.PluginProvidedJSFLibraryCreationHelper_ErrorCreating,
-							newLib.getName()));
-		}
-		return null;
-	}
-
-	/**
-	 * Adds ArchiveFile instances to the specified JSFLibrary instance.
-	 * 
-	 * @param newLib JSFLibrary instance
-	 * @throws InvalidArchiveFilesCreationException on attempt to create
-	 * multiple instances at same location.
-	 * @throws CoreException on core failure.
-	 */
-	private void addArchives(JSFLibrary newLib) throws InvalidArchiveFilesCreationException, CoreException {
-		JSFLibraryArchiveFilesDelegate jarCol = null;
-		ArchiveFile jar = null;
-
-		jarCol = (JSFLibraryArchiveFilesDelegate)config_element.createExecutableExtension(DELEGATE);
-		if (jarCol != null){
-			jarCol.setConfigurationElement(config_element);
-			Collection jars = jarCol.getArchiveFiles();
-			if (jars == null)//TODO: better validation and error handling
-				return;
-			Iterator it = jars.iterator();
-			while (it.hasNext()){
-				Object aJar = it.next();
-				if (aJar instanceof ArchiveFile){//for now check to see ArchiveFiles were being returned
-					jar = (ArchiveFile)aJar;
-					if (!newLib.containsArchiveFile(jar.getSourceLocation()))
-						newLib.getArchiveFiles().add(jar);
-				}
-				else {
-					throw new InvalidArchiveFilesCreationException(
-							NLS.bind(
-									Messages.PluginProvidedJSFLibraryCreationHelper_ErrorMultipleDefinition,
-									jar.getSourceLocation(),
-									config_element.getName()));
-				}
-					
-			}
-		}
-	}
-
-	/**
-	 * Returns the JSFLibrary instance's ID as specified in the plugin.
-	 * 
-	 * @return The JSFLibrary instance's ID
-	 */
-	private String getLibID(){
-		StringBuffer buf = new StringBuffer(config_element.getDeclaringExtension().getUniqueIdentifier());
-		buf.append("/").append(config_element.getAttribute(NAME)); //$NON-NLS-1$
-		return buf.toString();
-	}
-
-	/**
-	 * Returns the plugin's ID.
-	 * 
-	 * @return The plugin's ID
-	 */
-	private String getPluginID() {
-		return config_element.getDeclaringExtension().getNamespace();
-	}
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/editpart/PFLinkEditPart.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/editpart/PFLinkEditPart.java
new file mode 100644
index 0000000..f7d3e9e
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/editpart/PFLinkEditPart.java
@@ -0,0 +1,523 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2005 Sybase, Inc. 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:
+ *     Sybase, Inc. - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.jst.jsf.facesconfig.ui.pageflow.editpart;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.resources.IResource;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.RelativeBendpoint;
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.editparts.AbstractConnectionEditPart;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.text.source.Annotation;
+import org.eclipse.jst.jsf.facesconfig.emf.NavigationCaseType;
+import org.eclipse.jst.jsf.facesconfig.ui.EditorPlugin;
+import org.eclipse.jst.jsf.facesconfig.ui.IconResources;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.editpolicy.PFLinkBendpointEditPolicy;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.editpolicy.PFLinkEditPolicy;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.editpolicy.PFLinkEndpointEditPolicy;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.figure.PFLinkFigure;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLinkBendpoint;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPackage;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.properties.PageflowElementPropertySource;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.util.PageflowAnnotationUtil;
+import org.eclipse.jst.jsf.facesconfig.ui.preference.GEMPreferences;
+import org.eclipse.jst.jsf.facesconfig.ui.util.WebrootUtil;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.views.properties.IPropertySource;
+
+/**
+ * <code>PFLinkEditPart</code> is the EditPart for PFLink model elements. The
+ * figure for this EditPart is simply a PolylineConnection. Because both
+ * AbstractConnectionEditPart and the Adapter interface have a getTarget method,
+ * we use an inner class to implement the Adapter interface in order to work
+ * around the name collision.
+ * 
+ * 
+ */
+public class PFLinkEditPart extends AbstractConnectionEditPart implements
+		IConnectionPreference, IAnnotationEditPart {
+	/** adapter for notification */
+	private PFLinkAdapter adapter = new PFLinkAdapter();
+
+	private FCAdapter fcAdapter = new FCAdapter();
+
+	/** property source of the pflink */
+	private IPropertySource propertySource = null;
+
+	/** image description for different edit part */
+	public static final ImageDescriptor IMG_WARNING = EditorPlugin.getDefault()
+			.getImageDescriptor(
+					IconResources.getString("Pageflow.quickfixerrorobject"));
+
+	private int connectionStyle = -1;
+
+	private PFLinkBendpointEditPolicy bendpointEditPolicy;
+
+	/**
+	 * @param element
+	 */
+	public PFLinkEditPart(PFLink element) {
+		super();
+		// element.getPageflow()
+		setModel(element);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see AbstractGraphicalEditPart#createFigure()
+	 */
+	protected IFigure createFigure() {
+		IFigure figure = new PFLinkFigure();
+		return figure;
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see AbstractEditPart#createEditPolicies()
+	 */
+	protected void createEditPolicies() {
+		installEditPolicy(EditPolicy.CONNECTION_ENDPOINTS_ROLE,
+				new PFLinkEndpointEditPolicy());
+
+		if (getConnectionRouterStyle() == ILayerPanePreference.LINE_ROUTING_MANUAL) {
+			installEditPolicy(EditPolicy.CONNECTION_BENDPOINTS_ROLE,
+					getBendpointEditPolicy());
+		}
+		PFLinkEditPolicy policy = new PFLinkEditPolicy();
+		// policy.setSseModel(model);
+		installEditPolicy(EditPolicy.CONNECTION_ROLE, new PFLinkEditPolicy());
+
+	}
+
+	private PFLinkBendpointEditPolicy getBendpointEditPolicy() {
+		if (bendpointEditPolicy == null) {
+			bendpointEditPolicy = new PFLinkBendpointEditPolicy();
+		}
+		return bendpointEditPolicy;
+	}
+
+	public PFLink getPFLink() {
+		return (PFLink) getModel();
+	}
+
+	private class FCAdapter implements Adapter {
+
+		public Notifier getTarget() {
+			// TODO Auto-generated method stub
+			return null;
+		}
+
+		public boolean isAdapterForType(Object type) {
+			return getModel().getClass() == type;
+		}
+
+		public void notifyChanged(Notification notification) {
+			int type = notification.getEventType();
+			int featureId = notification.getFeatureID(PageflowPackage.class);
+			// FC2PFTransformer.getInstance().NotifyChanged(notification,
+			// getPFLink());
+			switch (type) {
+			case Notification.ADD:
+			case Notification.ADD_MANY:
+			case Notification.REMOVE:
+			case Notification.SET:
+				// FIXME: need the more detailed updation.
+				refreshVisuals();
+				break;
+			}
+		}
+
+		public void setTarget(Notifier newTarget) {
+			// TODO Auto-generated method stub
+
+		}
+
+	}
+
+	private class PFLinkAdapter implements Adapter {
+		private Notifier _newTarget = null;
+
+		// private IPropertySource _propertySource = null;
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see org.eclipse.emf.common.notify.Adapter#getTarget()
+		 */
+		public Notifier getTarget() {
+			return _newTarget;
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see org.eclipse.emf.common.notify.Adapter#isAdapterForType(java.lang.Object)
+		 */
+		public boolean isAdapterForType(Object type) {
+			return getModel().getClass() == type;
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see org.eclipse.emf.common.notify.Adapter#notifyChanged(org.eclipse.emf.common.notify.Notification)
+		 */
+		public void notifyChanged(Notification notification) {
+			int type = notification.getEventType();
+			int featureId = notification.getFeatureID(PageflowPackage.class);
+			// FC2PFTransformer.getInstance().NotifyChanged(notification,
+			// getPFLink());
+			switch (type) {
+			case Notification.ADD:
+			case Notification.ADD_MANY:
+			case Notification.REMOVE:
+			case Notification.SET:
+				if (featureId == PageflowPackage.PF_LINK__OUTCOME
+						|| featureId == PageflowPackage.PF_LINK__SOURCE
+						|| featureId == PageflowPackage.PF_LINK__TARGET) {
+					PageflowAnnotationUtil.validateLink(PFLinkEditPart.this);
+				}
+
+				refreshVisuals();
+				break;
+			}
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see org.eclipse.emf.common.notify.Adapter#setTarget(org.eclipse.emf.common.notify.Notifier)
+		 */
+		public void setTarget(Notifier newTarget) {
+			this._newTarget = newTarget;
+		}
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see EditPart#activate()
+	 */
+	public void activate() {
+		getPFLink().eAdapters().add(adapter);
+		PFLink element = (PFLink) getModel();
+		if (element.getFCElements().size() > 0) {
+			NavigationCaseType navCase = ((NavigationCaseType) element
+					.getFCElements().get(0));
+			if (!navCase.eAdapters().contains(fcAdapter)) {
+				navCase.eAdapters().add(fcAdapter);
+				TreeIterator iterator = navCase.eAllContents();
+				while (iterator.hasNext()) {
+					EObject next = (EObject) iterator.next();
+					if (!next.eAdapters().contains(fcAdapter)) {
+						next.eAdapters().add(fcAdapter);
+					}
+				}
+			}
+		}
+		super.activate();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see EditPart#deactivate()
+	 */
+	public void deactivate() {
+		getPFLink().eAdapters().remove(adapter);
+		PFLink element = (PFLink) getModel();
+		NavigationCaseType navCase = ((NavigationCaseType) element
+				.getFCElements().get(0));
+		navCase.eAdapters().remove(fcAdapter);
+		TreeIterator iterator = navCase.eAllContents();
+		while (iterator.hasNext()) {
+			((EObject) iterator.next()).eAdapters().remove(fcAdapter);
+		}
+
+		super.deactivate();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see IAdaptable#getAdapter(java.lang.Class)
+	 */
+	public Object getAdapter(Class key) {
+		/*
+		 * override the default behavior defined in AbstractEditPart which would
+		 * expect the model to be a property sourced. instead the editpart can
+		 * provide a property source
+		 */
+		if (key == IPropertySource.class) {
+			return getPropertySource();
+		}
+		return super.getAdapter(key);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see PageflowElementEditPart#getPropertySource()
+	 */
+	protected IPropertySource getPropertySource() {
+		if (propertySource == null) {
+			propertySource = new PageflowElementPropertySource(getPFLink());
+		}
+		return propertySource;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see AbstractEditPart#refreshVisuals()
+	 */
+	protected void refreshVisuals() {
+		super.refreshVisuals();
+		resetLabel();
+		if (getConnectionRouterStyle() == ILayerPanePreference.LINE_ROUTING_MANUAL) {
+			refreshBendpoints();
+		}
+	}
+
+	/**
+	 * set the bendpoint constraints of the pflink connection
+	 * 
+	 */
+	protected void refreshBendpoints() {
+		// bendpoints stored in pflink
+		List modelConstraint = getPFLink().getBendPoints();
+		// bendpoint constraint list
+		List figureConstraint = new ArrayList();
+		for (int i = 0; i < modelConstraint.size(); i++) {
+			PFLinkBendpoint wbp = (PFLinkBendpoint) modelConstraint.get(i);
+			RelativeBendpoint rbp = new RelativeBendpoint(getConnectionFigure());
+			rbp.setRelativeDimensions(wbp.getFirstRelativeDimension(), wbp
+					.getSecondRelativeDimension());
+			rbp.setWeight((i + 1) / ((float) modelConstraint.size() + 1));
+			figureConstraint.add(rbp);
+		}
+		// set the router constaints.
+		getConnectionFigure().setRoutingConstraint(figureConstraint);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.sybase.stf.jmt.editors.pageflow.editparts.IConnectionPreference#setLineWidth(int)
+	 */
+	public void setLineWidth(int w) {
+		((PFLinkFigure) getFigure()).setLineWidth(w);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.sybase.stf.jmt.editors.pageflow.editparts.IConnectionPreference#setLabelVisible(boolean)
+	 */
+	public void setLabelVisible(boolean b) {
+		((PFLinkFigure) getFigure()).setLabelVisible(b);
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.sybase.stf.jmt.editors.pageflow.editparts.IFigurePreference#setForegroundColor(org.eclipse.swt.graphics.Color)
+	 */
+	public void setForegroundColor(Color c) {
+		((PFLinkFigure) getFigure()).setForegroundColor(c);
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.sybase.stf.jmt.editors.pageflow.editparts.IFigurePreference#setBackgroundColor(org.eclipse.swt.graphics.Color)
+	 */
+	public void setBackgroundColor(Color c) {
+		((PFLinkFigure) getFigure()).setBackgroundColor(c);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.sybase.stf.jmt.editors.pageflow.editparts.IFigurePreference#setFont(org.eclipse.swt.graphics.Font)
+	 */
+	public void setFont(Font f) {
+		((PFLinkFigure) getFigure()).setFont(f);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.sybase.stf.jmt.editors.pageflow.editparts.IConnectionPreference#setLabelForeground(org.eclipse.swt.graphics.Color)
+	 */
+	public void setLabelForegroundColor(Color c) {
+		((PFLinkFigure) getFigure()).setLabelForegroundColor(c);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.sybase.stf.jmt.editors.pageflow.editparts.IConnectionPreference#setLabelBackground(org.eclipse.swt.graphics.Color)
+	 */
+	public void setLabelBackgroundColor(Color c) {
+		((PFLinkFigure) getFigure()).setLabelBackgroundColor(c);
+	}
+
+	private boolean needDrawingLabel() {
+		return (((PFLink) getModel()).getOutcome() != null && ((PFLink) getModel())
+				.getOutcome().trim().length() > 0);
+	}
+
+	private boolean needDrawingAction() {
+		return (((PFLink) getModel()).getFromaction() != null && ((PFLink) getModel())
+				.getFromaction().trim().length() > 0);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.sybase.stf.jmt.editors.pageflow.editparts.IEditPartDecorator#decorateEditPart()
+	 */
+	public void addAnnotation(final Annotation annotation) {
+		getViewer().getControl().getDisplay().asyncExec(new Runnable() {
+			public void run() {
+				((PFLinkFigure) getFigure()).setImage(getImage(IMG_WARNING));
+				((PFLinkFigure) getFigure()).setToolTipText(annotation
+						.getText());
+			}
+		});
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.sybase.stf.jmt.editors.pageflow.editparts.IEditPartDecorator#undecorateEditPart()
+	 */
+	public void removeAnnotation() {
+		getViewer().getControl().getDisplay().asyncExec(new Runnable() {
+			public void run() {
+				((PFLinkFigure) getFigure()).clearIcon();
+				resetLabel();
+			}
+		});
+	}
+
+	public void resetLabel() {
+		String tip = "";
+		if (needDrawingAction()) {
+			((PFLinkFigure) getFigure()).setActionImage();
+			tip = "fromAction:(" + ((PFLink) getModel()).getFromaction() + ") ";
+		} else if (((PFLinkFigure) getFigure()).getImage() != getImage(IMG_WARNING)) {
+			((PFLinkFigure) getFigure()).clearIcon();
+			tip = "";
+		}
+		if (needDrawingLabel()) {
+			((PFLinkFigure) getFigure()).setLabel(((PFLink) getModel())
+					.getOutcome());
+			tip += "fromOutcome:(";
+			tip += ((PFLink) getModel()).getOutcome() + ")";
+		} else {
+			((PFLinkFigure) getFigure()).clearOutcome();
+		}
+		((PFLinkFigure) getFigure()).setToolTipText(tip);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.sybase.stf.jmt.editors.pageflow.marker.IEditPartMarker#getMarkerResource()
+	 * 
+	 */
+	public IResource getMarkerResource() {
+		// IResource resource = null;
+		// if (getModel() instanceof PFLink)
+		// {
+		// resource =
+		// FacesConfigUtil.getFacesConfigResource(((PFLink)getModel()).getPageflow());
+		// }
+		// FIXME: it should be changed to link to faces-config file.
+		IResource resource = WebrootUtil.getResource((EObject) getModel());
+		return resource;
+	}
+
+	public static Image getImage(ImageDescriptor imageDescriptor) {
+		Image image = EditorPlugin.getDefault().getImageRegistry().get(
+				imageDescriptor.toString());
+		if (null == image) {
+			EditorPlugin.getDefault().getImageRegistry().put(
+					imageDescriptor.toString(), imageDescriptor);
+			image = EditorPlugin.getDefault().getImageRegistry().get(
+					imageDescriptor.toString());
+		}
+
+		return image;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.sybase.stf.jmt.editors.pageflow.editparts.IConnectionPreference#setConnectionRouterStyle(int)
+	 */
+	public void setConnectionRouterStyle(int style) {
+		connectionStyle = style;
+		if (getConnectionRouterStyle() == ILayerPanePreference.LINE_ROUTING_MANUAL) {
+			installEditPolicy(EditPolicy.CONNECTION_BENDPOINTS_ROLE,
+					getBendpointEditPolicy());
+			refreshVisuals();
+		} else {
+			removeEditPolicy(EditPolicy.CONNECTION_BENDPOINTS_ROLE);
+			refreshVisuals();
+		}
+
+	}
+
+	/**
+	 * get the foreground color from preference
+	 * 
+	 */
+	public int getConnectionRouterStyle() {
+		if (this.connectionStyle == -1) {
+			IPreferenceStore store = EditorPlugin.getDefault()
+					.getPreferenceStore();
+			String connectionStyle = store
+					.getString(GEMPreferences.LINE_ROUTING);
+
+			if (GEMPreferences.LINE_ROUTING_MANHATTAN
+					.equals(connectionStyle)) {
+				this.connectionStyle = ILayerPanePreference.LINE_ROUTING_MANHATTAN;
+			} else {
+				this.connectionStyle = ILayerPanePreference.LINE_ROUTING_MANUAL;
+			}
+		}
+		return this.connectionStyle;
+	}
+
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/PFLink.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/PFLink.java
new file mode 100644
index 0000000..236ce51
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/PFLink.java
@@ -0,0 +1,306 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2005 Sybase, Inc. 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:
+ *     Sybase, Inc. - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.jsf.facesconfig.ui.pageflow.model;
+
+import java.util.Vector;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>PF Link</b></em>'.
+ * <!-- end-user-doc -->
+ * 
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink#getPageflow <em>Pageflow</em>}</li>
+ *   <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink#getTarget <em>Target</em>}</li>
+ *   <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink#getSource <em>Source</em>}</li>
+ *   <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink#getSmallicon <em>Smallicon</em>}</li>
+ *   <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink#getLargeicon <em>Largeicon</em>}</li>
+ *   <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink#getFromaction <em>Fromaction</em>}</li>
+ *   <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink#getOutcome <em>Outcome</em>}</li>
+ *   <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink#isRedirect <em>Redirect</em>}</li>
+ *   <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink#getBendPoints <em>Bend Points</em>}</li>
+ * </ul>
+ * </p>
+ * 
+ * @see org.eclipse.jst.jsf.facesconfig.ui.org.eclipse.jst.jsf.facesconfig.editor.pageflow.model.model.PageflowPackage#getPFLink()
+ * @model
+ * @generated
+ */
+public interface PFLink extends PageflowElement {
+	/**
+	 * Returns the value of the '<em><b>Pageflow</b></em>' container reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.Pageflow#getLinks <em>Links</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Pageflow</em>' container reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Pageflow</em>' container reference.
+	 * @see #setPageflow(Pageflow)
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPackage#getPFLink_Pageflow()
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.Pageflow#getLinks
+	 * @model opposite="links" required="true"
+	 * @generated
+	 */
+	Pageflow getPageflow();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink#getPageflow <em>Pageflow</em>}' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Pageflow</em>' container reference.
+	 * @see #getPageflow()
+	 * @generated
+	 */
+	void setPageflow(Pageflow value);
+
+	/**
+	 * Returns the value of the '<em><b>Target</b></em>' reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowNode#getInlinks <em>Inlinks</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Target</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Target</em>' reference.
+	 * @see #setTarget(PageflowNode)
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPackage#getPFLink_Target()
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowNode#getInlinks
+	 * @model opposite="inlinks" required="true"
+	 * @generated
+	 */
+	PageflowNode getTarget();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink#getTarget <em>Target</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Target</em>' reference.
+	 * @see #getTarget()
+	 * @generated
+	 */
+	void setTarget(PageflowNode value);
+
+	/**
+	 * Returns the value of the '<em><b>Source</b></em>' reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowNode#getOutlinks <em>Outlinks</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Source</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Source</em>' reference.
+	 * @see #setSource(PageflowNode)
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPackage#getPFLink_Source()
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowNode#getOutlinks
+	 * @model opposite="outlinks" required="true"
+	 * @generated
+	 */
+	PageflowNode getSource();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink#getSource <em>Source</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Source</em>' reference.
+	 * @see #getSource()
+	 * @generated
+	 */
+	void setSource(PageflowNode value);
+
+	/**
+	 * Returns the value of the '<em><b>Smallicon</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Smallicon</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Smallicon</em>' attribute.
+	 * @see #setSmallicon(String)
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPackage#getPFLink_Smallicon()
+	 * @model
+	 * @generated
+	 */
+	String getSmallicon();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink#getSmallicon <em>Smallicon</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Smallicon</em>' attribute.
+	 * @see #getSmallicon()
+	 * @generated
+	 */
+	void setSmallicon(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Largeicon</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Largeicon</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Largeicon</em>' attribute.
+	 * @see #setLargeicon(String)
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPackage#getPFLink_Largeicon()
+	 * @model
+	 * @generated
+	 */
+	String getLargeicon();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink#getLargeicon <em>Largeicon</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Largeicon</em>' attribute.
+	 * @see #getLargeicon()
+	 * @generated
+	 */
+	void setLargeicon(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Fromaction</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Fromaction</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Fromaction</em>' attribute.
+	 * @see #setFromaction(String)
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPackage#getPFLink_Fromaction()
+	 * @model
+	 * @generated
+	 */
+	String getFromaction();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink#getFromaction <em>Fromaction</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Fromaction</em>' attribute.
+	 * @see #getFromaction()
+	 * @generated
+	 */
+	void setFromaction(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Outcome</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Outcome</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Outcome</em>' attribute.
+	 * @see #setOutcome(String)
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPackage#getPFLink_Outcome()
+	 * @model
+	 * @generated
+	 */
+	String getOutcome();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink#getOutcome <em>Outcome</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Outcome</em>' attribute.
+	 * @see #getOutcome()
+	 * @generated
+	 */
+	void setOutcome(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Redirect</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Redirect</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Redirect</em>' attribute.
+	 * @see #setRedirect(boolean)
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPackage#getPFLink_Redirect()
+	 * @model
+	 * @generated
+	 */
+	boolean isRedirect();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink#isRedirect <em>Redirect</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Redirect</em>' attribute.
+	 * @see #isRedirect()
+	 * @generated
+	 */
+	void setRedirect(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Bend Points</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLinkBendpoint}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLinkBendpoint#getLink <em>Link</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Bend Points</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Bend Points</em>' containment reference list.
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPackage#getPFLink_BendPoints()
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLinkBendpoint#getLink
+	 * @model type="org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLinkBendpoint" opposite="link" containment="true"
+	 * @generated
+	 */
+	EList getBendPoints();
+
+	/**
+	 * <!-- begin-user-doc --> insert a new bendpoint to the link <!--
+	 * end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public void insertBendpoint(int index, PFLinkBendpoint point);
+
+	/**
+	 * <!-- begin-user-doc --> remove the current bendpoint <!-- end-user-doc
+	 * -->
+	 * 
+	 * @generated NOT
+	 */
+	public void removeBendpoint(int index);
+
+	/**
+	 * <!-- begin-user-doc --> Set the current bendpoint <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public void setBendpoint(int index, PFLinkBendpoint point);
+
+	/**
+	 * <!-- begin-user-doc --> Set a group of bendpoints to reconstruct the link
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public void setBendpoints(Vector points);
+
+}
+// PFLink
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/PFLinkBendpoint.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/PFLinkBendpoint.java
new file mode 100644
index 0000000..1334b88
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/PFLinkBendpoint.java
@@ -0,0 +1,230 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2005 Sybase, Inc. 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:
+ *     Sybase, Inc. - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.jsf.facesconfig.ui.pageflow.model;
+
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>PF Link Bendpoint</b></em>'.
+ * <!-- end-user-doc -->
+ * 
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLinkBendpoint#getD1Width <em>D1 Width</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLinkBendpoint#getD1Height <em>D1 Height</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLinkBendpoint#getD2Width <em>D2 Width</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLinkBendpoint#getD2Height <em>D2 Height</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLinkBendpoint#getWeight <em>Weight</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLinkBendpoint#getLink <em>Link</em>}</li>
+ * </ul>
+ * </p>
+ * 
+ * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPackage#getPFLinkBendpoint()
+ * @model
+ * @generated
+ */
+public interface PFLinkBendpoint extends EObject {
+	/**
+	 * Returns the value of the '<em><b>D1 Width</b></em>' attribute. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>D1 Width</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>D1 Width</em>' attribute.
+	 * @see #setD1Width(int)
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPackage#getPFLinkBendpoint_D1Width()
+	 * @model
+	 * @generated
+	 */
+	int getD1Width();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLinkBendpoint#getD1Width <em>D1 Width</em>}'
+	 * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @param value
+	 *            the new value of the '<em>D1 Width</em>' attribute.
+	 * @see #getD1Width()
+	 * @generated
+	 */
+	void setD1Width(int value);
+
+	/**
+	 * Returns the value of the '<em><b>D1 Height</b></em>' attribute. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>D1 Height</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>D1 Height</em>' attribute.
+	 * @see #setD1Height(int)
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPackage#getPFLinkBendpoint_D1Height()
+	 * @model
+	 * @generated
+	 */
+	int getD1Height();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLinkBendpoint#getD1Height <em>D1 Height</em>}'
+	 * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @param value
+	 *            the new value of the '<em>D1 Height</em>' attribute.
+	 * @see #getD1Height()
+	 * @generated
+	 */
+	void setD1Height(int value);
+
+	/**
+	 * Returns the value of the '<em><b>D2 Width</b></em>' attribute. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>D2 Width</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>D2 Width</em>' attribute.
+	 * @see #setD2Width(int)
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPackage#getPFLinkBendpoint_D2Width()
+	 * @model
+	 * @generated
+	 */
+	int getD2Width();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLinkBendpoint#getD2Width <em>D2 Width</em>}'
+	 * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @param value
+	 *            the new value of the '<em>D2 Width</em>' attribute.
+	 * @see #getD2Width()
+	 * @generated
+	 */
+	void setD2Width(int value);
+
+	/**
+	 * Returns the value of the '<em><b>D2 Height</b></em>' attribute. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>D2 Height</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>D2 Height</em>' attribute.
+	 * @see #setD2Height(int)
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPackage#getPFLinkBendpoint_D2Height()
+	 * @model
+	 * @generated
+	 */
+	int getD2Height();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLinkBendpoint#getD2Height <em>D2 Height</em>}'
+	 * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @param value
+	 *            the new value of the '<em>D2 Height</em>' attribute.
+	 * @see #getD2Height()
+	 * @generated
+	 */
+	void setD2Height(int value);
+
+	/**
+	 * Returns the value of the '<em><b>Weight</b></em>' attribute. The
+	 * default value is <code>"0.5"</code>. <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Weight</em>' attribute isn't clear, there
+	 * really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Weight</em>' attribute.
+	 * @see #setWeight(float)
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPackage#getPFLinkBendpoint_Weight()
+	 * @model default="0.5"
+	 * @generated
+	 */
+	float getWeight();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLinkBendpoint#getWeight <em>Weight</em>}'
+	 * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @param value
+	 *            the new value of the '<em>Weight</em>' attribute.
+	 * @see #getWeight()
+	 * @generated
+	 */
+	void setWeight(float value);
+
+	/**
+	 * Returns the value of the '<em><b>Link</b></em>' container reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink#getBendPoints <em>Bend Points</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Link</em>' container reference isn't
+	 * clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Link</em>' container reference.
+	 * @see #setLink(PFLink)
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPackage#getPFLinkBendpoint_Link()
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink#getBendPoints
+	 * @model opposite="bendPoints" required="true"
+	 * @generated
+	 */
+	PFLink getLink();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLinkBendpoint#getLink <em>Link</em>}'
+	 * container reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @param value
+	 *            the new value of the '<em>Link</em>' container reference.
+	 * @see #getLink()
+	 * @generated
+	 */
+	void setLink(PFLink value);
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public Dimension getFirstRelativeDimension();
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public Dimension getSecondRelativeDimension();
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public void setRelativeDimensions(Dimension dim1, Dimension dim2);
+
+}
+// PFLinkBendpoint
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/PFPage.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/PFPage.java
new file mode 100644
index 0000000..5ef9130
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/PFPage.java
@@ -0,0 +1,119 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2005 Sybase, Inc. 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:
+ *     Sybase, Inc. - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.jsf.facesconfig.ui.pageflow.model;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>PF Page</b></em>'.
+ * <!-- end-user-doc -->
+ * 
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFPage#getPath <em>Path</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFPage#getSmallicon <em>Smallicon</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFPage#getLargeicon <em>Largeicon</em>}</li>
+ * </ul>
+ * </p>
+ * 
+ * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPackage#getPFPage()
+ * @model
+ * @generated
+ */
+public interface PFPage extends PageflowNode {
+	/**
+	 * Returns the value of the '<em><b>Path</b></em>' attribute. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Path</em>' attribute isn't clear, there
+	 * really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Path</em>' attribute.
+	 * @see #setPath(String)
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPackage#getPFPage_Path()
+	 * @model
+	 * @generated
+	 */
+	String getPath();
+
+	void setInitPath(String path);
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFPage#getPath <em>Path</em>}'
+	 * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @param value
+	 *            the new value of the '<em>Path</em>' attribute.
+	 * @see #getPath()
+	 * @generated
+	 */
+	void setPath(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Smallicon</b></em>' attribute. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Smallicon</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Smallicon</em>' attribute.
+	 * @see #setSmallicon(String)
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPackage#getPFPage_Smallicon()
+	 * @model
+	 * @generated
+	 */
+	String getSmallicon();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFPage#getSmallicon <em>Smallicon</em>}'
+	 * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @param value
+	 *            the new value of the '<em>Smallicon</em>' attribute.
+	 * @see #getSmallicon()
+	 * @generated
+	 */
+	void setSmallicon(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Largeicon</b></em>' attribute. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Largeicon</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Largeicon</em>' attribute.
+	 * @see #setLargeicon(String)
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPackage#getPFPage_Largeicon()
+	 * @model
+	 * @generated
+	 */
+	String getLargeicon();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFPage#getLargeicon <em>Largeicon</em>}'
+	 * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @param value
+	 *            the new value of the '<em>Largeicon</em>' attribute.
+	 * @see #getLargeicon()
+	 * @generated
+	 */
+	void setLargeicon(String value);
+
+}
+// PFPage
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/impl/PFLinkBendpointImpl.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/impl/PFLinkBendpointImpl.java
new file mode 100644
index 0000000..abb62f2
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/impl/PFLinkBendpointImpl.java
@@ -0,0 +1,550 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2005 Sybase, Inc. 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:
+ *     Sybase, Inc. - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl;
+
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLinkBendpoint;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>PF Link Bendpoint</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PFLinkBendpointImpl#getD1Width <em>D1 Width</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PFLinkBendpointImpl#getD1Height <em>D1 Height</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PFLinkBendpointImpl#getD2Width <em>D2 Width</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PFLinkBendpointImpl#getD2Height <em>D2 Height</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PFLinkBendpointImpl#getWeight <em>Weight</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PFLinkBendpointImpl#getLink <em>Link</em>}</li>
+ * </ul>
+ * </p>
+ * 
+ * @generated
+ */
+public class PFLinkBendpointImpl extends EObjectImpl implements PFLinkBendpoint {
+	/**
+	 * The default value of the '{@link #getD1Width() <em>D1 Width</em>}'
+	 * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getD1Width()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int D1_WIDTH_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getD1Width() <em>D1 Width</em>}'
+	 * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getD1Width()
+	 * @generated
+	 * @ordered
+	 */
+	protected int d1Width = D1_WIDTH_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getD1Height() <em>D1 Height</em>}'
+	 * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getD1Height()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int D1_HEIGHT_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getD1Height() <em>D1 Height</em>}'
+	 * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getD1Height()
+	 * @generated
+	 * @ordered
+	 */
+	protected int d1Height = D1_HEIGHT_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getD2Width() <em>D2 Width</em>}'
+	 * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getD2Width()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int D2_WIDTH_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getD2Width() <em>D2 Width</em>}'
+	 * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getD2Width()
+	 * @generated
+	 * @ordered
+	 */
+	protected int d2Width = D2_WIDTH_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getD2Height() <em>D2 Height</em>}'
+	 * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getD2Height()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int D2_HEIGHT_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getD2Height() <em>D2 Height</em>}'
+	 * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getD2Height()
+	 * @generated
+	 * @ordered
+	 */
+	protected int d2Height = D2_HEIGHT_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getWeight() <em>Weight</em>}'
+	 * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getWeight()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final float WEIGHT_EDEFAULT = 0.5F;
+
+	/**
+	 * The cached value of the '{@link #getWeight() <em>Weight</em>}'
+	 * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getWeight()
+	 * @generated
+	 * @ordered
+	 */
+	protected float weight = WEIGHT_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	private Dimension dimStart, dimEnd;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected PFLinkBendpointImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return PageflowPackage.eINSTANCE.getPFLinkBendpoint();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public int getD1Width() {
+		return d1Width;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void setD1Width(int newD1Width) {
+		int oldD1Width = d1Width;
+		d1Width = newD1Width;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					PageflowPackage.PF_LINK_BENDPOINT__D1_WIDTH, oldD1Width,
+					d1Width));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public int getD1Height() {
+		return d1Height;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void setD1Height(int newD1Height) {
+		int oldD1Height = d1Height;
+		d1Height = newD1Height;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					PageflowPackage.PF_LINK_BENDPOINT__D1_HEIGHT, oldD1Height,
+					d1Height));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public int getD2Width() {
+		return d2Width;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void setD2Width(int newD2Width) {
+		int oldD2Width = d2Width;
+		d2Width = newD2Width;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					PageflowPackage.PF_LINK_BENDPOINT__D2_WIDTH, oldD2Width,
+					d2Width));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public int getD2Height() {
+		return d2Height;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void setD2Height(int newD2Height) {
+		int oldD2Height = d2Height;
+		d2Height = newD2Height;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					PageflowPackage.PF_LINK_BENDPOINT__D2_HEIGHT, oldD2Height,
+					d2Height));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public float getWeight() {
+		return weight;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void setWeight(float newWeight) {
+		float oldWeight = weight;
+		weight = newWeight;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					PageflowPackage.PF_LINK_BENDPOINT__WEIGHT, oldWeight,
+					weight));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public PFLink getLink() {
+		if (eContainerFeatureID != PageflowPackage.PF_LINK_BENDPOINT__LINK)
+			return null;
+		return (PFLink) eContainer;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void setLink(PFLink newLink) {
+		if (newLink != eContainer
+				|| (eContainerFeatureID != PageflowPackage.PF_LINK_BENDPOINT__LINK && newLink != null)) {
+			if (EcoreUtil.isAncestor(this, newLink))
+				throw new IllegalArgumentException(
+						"Recursive containment not allowed for " + toString());
+			NotificationChain msgs = null;
+			if (eContainer != null)
+				msgs = eBasicRemoveFromContainer(msgs);
+			if (newLink != null)
+				msgs = ((InternalEObject) newLink).eInverseAdd(this,
+						PageflowPackage.PF_LINK__BEND_POINTS, PFLink.class,
+						msgs);
+			msgs = eBasicSetContainer((InternalEObject) newLink,
+					PageflowPackage.PF_LINK_BENDPOINT__LINK, msgs);
+			if (msgs != null)
+				msgs.dispatch();
+		} else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					PageflowPackage.PF_LINK_BENDPOINT__LINK, newLink, newLink));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd,
+			int featureID, Class baseClass, NotificationChain msgs) {
+		if (featureID >= 0) {
+			switch (eDerivedStructuralFeatureID(featureID, baseClass)) {
+			case PageflowPackage.PF_LINK_BENDPOINT__LINK:
+				if (eContainer != null)
+					msgs = eBasicRemoveFromContainer(msgs);
+				return eBasicSetContainer(otherEnd,
+						PageflowPackage.PF_LINK_BENDPOINT__LINK, msgs);
+			default:
+				return eDynamicInverseAdd(otherEnd, featureID, baseClass, msgs);
+			}
+		}
+		if (eContainer != null)
+			msgs = eBasicRemoveFromContainer(msgs);
+		return eBasicSetContainer(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd,
+			int featureID, Class baseClass, NotificationChain msgs) {
+		if (featureID >= 0) {
+			switch (eDerivedStructuralFeatureID(featureID, baseClass)) {
+			case PageflowPackage.PF_LINK_BENDPOINT__LINK:
+				return eBasicSetContainer(null,
+						PageflowPackage.PF_LINK_BENDPOINT__LINK, msgs);
+			default:
+				return eDynamicInverseRemove(otherEnd, featureID, baseClass,
+						msgs);
+			}
+		}
+		return eBasicSetContainer(null, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) {
+		if (eContainerFeatureID >= 0) {
+			switch (eContainerFeatureID) {
+			case PageflowPackage.PF_LINK_BENDPOINT__LINK:
+				return ((InternalEObject) eContainer).eInverseRemove(this,
+						PageflowPackage.PF_LINK__BEND_POINTS, PFLink.class,
+						msgs);
+			default:
+				return eDynamicBasicRemoveFromContainer(msgs);
+			}
+		}
+		return ((InternalEObject) eContainer).eInverseRemove(this,
+				EOPPOSITE_FEATURE_BASE - eContainerFeatureID, null, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public Object eGet(EStructuralFeature eFeature, boolean resolve) {
+		switch (eDerivedStructuralFeatureID(eFeature)) {
+		case PageflowPackage.PF_LINK_BENDPOINT__D1_WIDTH:
+			return new Integer(getD1Width());
+		case PageflowPackage.PF_LINK_BENDPOINT__D1_HEIGHT:
+			return new Integer(getD1Height());
+		case PageflowPackage.PF_LINK_BENDPOINT__D2_WIDTH:
+			return new Integer(getD2Width());
+		case PageflowPackage.PF_LINK_BENDPOINT__D2_HEIGHT:
+			return new Integer(getD2Height());
+		case PageflowPackage.PF_LINK_BENDPOINT__WEIGHT:
+			return new Float(getWeight());
+		case PageflowPackage.PF_LINK_BENDPOINT__LINK:
+			return getLink();
+		}
+		return eDynamicGet(eFeature, resolve);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void eSet(EStructuralFeature eFeature, Object newValue) {
+		switch (eDerivedStructuralFeatureID(eFeature)) {
+		case PageflowPackage.PF_LINK_BENDPOINT__D1_WIDTH:
+			setD1Width(((Integer) newValue).intValue());
+			return;
+		case PageflowPackage.PF_LINK_BENDPOINT__D1_HEIGHT:
+			setD1Height(((Integer) newValue).intValue());
+			return;
+		case PageflowPackage.PF_LINK_BENDPOINT__D2_WIDTH:
+			setD2Width(((Integer) newValue).intValue());
+			return;
+		case PageflowPackage.PF_LINK_BENDPOINT__D2_HEIGHT:
+			setD2Height(((Integer) newValue).intValue());
+			return;
+		case PageflowPackage.PF_LINK_BENDPOINT__WEIGHT:
+			setWeight(((Float) newValue).floatValue());
+			return;
+		case PageflowPackage.PF_LINK_BENDPOINT__LINK:
+			setLink((PFLink) newValue);
+			return;
+		}
+		eDynamicSet(eFeature, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void eUnset(EStructuralFeature eFeature) {
+		switch (eDerivedStructuralFeatureID(eFeature)) {
+		case PageflowPackage.PF_LINK_BENDPOINT__D1_WIDTH:
+			setD1Width(D1_WIDTH_EDEFAULT);
+			return;
+		case PageflowPackage.PF_LINK_BENDPOINT__D1_HEIGHT:
+			setD1Height(D1_HEIGHT_EDEFAULT);
+			return;
+		case PageflowPackage.PF_LINK_BENDPOINT__D2_WIDTH:
+			setD2Width(D2_WIDTH_EDEFAULT);
+			return;
+		case PageflowPackage.PF_LINK_BENDPOINT__D2_HEIGHT:
+			setD2Height(D2_HEIGHT_EDEFAULT);
+			return;
+		case PageflowPackage.PF_LINK_BENDPOINT__WEIGHT:
+			setWeight(WEIGHT_EDEFAULT);
+			return;
+		case PageflowPackage.PF_LINK_BENDPOINT__LINK:
+			setLink((PFLink) null);
+			return;
+		}
+		eDynamicUnset(eFeature);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public boolean eIsSet(EStructuralFeature eFeature) {
+		switch (eDerivedStructuralFeatureID(eFeature)) {
+		case PageflowPackage.PF_LINK_BENDPOINT__D1_WIDTH:
+			return d1Width != D1_WIDTH_EDEFAULT;
+		case PageflowPackage.PF_LINK_BENDPOINT__D1_HEIGHT:
+			return d1Height != D1_HEIGHT_EDEFAULT;
+		case PageflowPackage.PF_LINK_BENDPOINT__D2_WIDTH:
+			return d2Width != D2_WIDTH_EDEFAULT;
+		case PageflowPackage.PF_LINK_BENDPOINT__D2_HEIGHT:
+			return d2Height != D2_HEIGHT_EDEFAULT;
+		case PageflowPackage.PF_LINK_BENDPOINT__WEIGHT:
+			return weight != WEIGHT_EDEFAULT;
+		case PageflowPackage.PF_LINK_BENDPOINT__LINK:
+			return getLink() != null;
+		}
+		return eDynamicIsSet(eFeature);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (d1Width: ");
+		result.append(d1Width);
+		result.append(", d1Height: ");
+		result.append(d1Height);
+		result.append(", d2Width: ");
+		result.append(d2Width);
+		result.append(", d2Height: ");
+		result.append(d2Height);
+		result.append(", weight: ");
+		result.append(weight);
+		result.append(')');
+		return result.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public Dimension getFirstRelativeDimension() {
+		dimStart = new Dimension(getD1Width(), getD1Height());
+		return dimStart;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public Dimension getSecondRelativeDimension() {
+		dimEnd = new Dimension(getD2Width(), getD2Height());
+		return dimEnd;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public void setRelativeDimensions(Dimension dim1, Dimension dim2) {
+		dimStart = dim1;
+		dimEnd = dim2;
+		setD1Width(dimStart.width);
+		setD1Height(dimStart.height);
+
+		setD2Width(dimEnd.width);
+		setD2Height(dimEnd.height);
+	}
+
+}
+// PFLinkBendpointImpl
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/impl/PFLinkImpl.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/impl/PFLinkImpl.java
new file mode 100644
index 0000000..44b61c5
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/impl/PFLinkImpl.java
@@ -0,0 +1,995 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2005 Sybase, Inc. 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:
+ *     Sybase, Inc. - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Vector;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.jst.jsf.facesconfig.emf.FacesConfigFactory;
+import org.eclipse.jst.jsf.facesconfig.emf.FromActionType;
+import org.eclipse.jst.jsf.facesconfig.emf.FromOutcomeType;
+import org.eclipse.jst.jsf.facesconfig.emf.IconType;
+import org.eclipse.jst.jsf.facesconfig.emf.LargeIconType;
+import org.eclipse.jst.jsf.facesconfig.emf.NavigationCaseType;
+import org.eclipse.jst.jsf.facesconfig.emf.RedirectType;
+import org.eclipse.jst.jsf.facesconfig.emf.SmallIconType;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLinkBendpoint;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.Pageflow;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowNode;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>PF Link</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PFLinkImpl#getPageflow <em>Pageflow</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PFLinkImpl#getTarget <em>Target</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PFLinkImpl#getSource <em>Source</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PFLinkImpl#getOutcome <em>Outcome</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PFLinkImpl#isRedirect <em>Redirect</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PFLinkImpl#getBendPoints <em>Bend Points</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PFLinkImpl#getSmallicon <em>Smallicon</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PFLinkImpl#getLargeicon <em>Largeicon</em>}</li>
+ * </ul>
+ * </p>
+ * 
+ * @generated
+ * 
+ */
+public class PFLinkImpl extends PageflowElementImpl implements PFLink {
+	/**
+	 * The cached value of the '{@link #getTarget() <em>Target</em>}'
+	 * reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getTarget()
+	 * @generated
+	 * @ordered
+	 */
+	protected PageflowNode target = null;
+
+	/**
+	 * The cached value of the '{@link #getSource() <em>Source</em>}'
+	 * reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getSource()
+	 * @generated
+	 * @ordered
+	 */
+	protected PageflowNode source = null;
+
+	/**
+	 * The default value of the '{@link #getOutcome() <em>Outcome</em>}'
+	 * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getOutcome()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String OUTCOME_EDEFAULT = null;
+
+	/**
+	 * The default value of the '{@link #isRedirect() <em>Redirect</em>}'
+	 * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #isRedirect()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean REDIRECT_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #getBendPoints() <em>Bend Points</em>}'
+	 * containment reference list. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getBendPoints()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList bendPoints = null;
+
+	/**
+	 * The default value of the '{@link #getSmallicon() <em>Smallicon</em>}'
+	 * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getSmallicon()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String SMALLICON_EDEFAULT = null;
+
+	/**
+	 * The default value of the '{@link #getLargeicon() <em>Largeicon</em>}'
+	 * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getLargeicon()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String LARGEICON_EDEFAULT = null;
+
+	/**
+	 * The default value of the '{@link #getFromaction() <em>Fromaction</em>}'
+	 * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getFromaction()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String FROMACTION_EDEFAULT = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected PFLinkImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return PageflowPackage.eINSTANCE.getPFLink();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public Pageflow getPageflow() {
+		if (eContainerFeatureID != PageflowPackage.PF_LINK__PAGEFLOW)
+			return null;
+		return (Pageflow) eContainer;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void setPageflow(Pageflow newPageflow) {
+		if (newPageflow != eContainer
+				|| (eContainerFeatureID != PageflowPackage.PF_LINK__PAGEFLOW && newPageflow != null)) {
+			if (EcoreUtil.isAncestor(this, newPageflow))
+				throw new IllegalArgumentException(
+						"Recursive containment not allowed for " + toString());
+			NotificationChain msgs = null;
+			if (eContainer != null)
+				msgs = eBasicRemoveFromContainer(msgs);
+			if (newPageflow != null)
+				msgs = ((InternalEObject) newPageflow).eInverseAdd(this,
+						PageflowPackage.PAGEFLOW__LINKS, Pageflow.class, msgs);
+			msgs = eBasicSetContainer((InternalEObject) newPageflow,
+					PageflowPackage.PF_LINK__PAGEFLOW, msgs);
+			if (msgs != null)
+				msgs.dispatch();
+		} else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					PageflowPackage.PF_LINK__PAGEFLOW, newPageflow, newPageflow));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public PageflowNode getTarget() {
+		if (target != null && target.eIsProxy()) {
+			PageflowNode oldTarget = target;
+			target = (PageflowNode) eResolveProxy((InternalEObject) target);
+			if (target != oldTarget) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+							PageflowPackage.PF_LINK__TARGET, oldTarget, target));
+			}
+		}
+		return target;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public PageflowNode basicGetTarget() {
+		return target;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public NotificationChain basicSetTarget(PageflowNode newTarget,
+			NotificationChain msgs) {
+		PageflowNode oldTarget = target;
+		target = newTarget;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this,
+					Notification.SET, PageflowPackage.PF_LINK__TARGET,
+					oldTarget, newTarget);
+			if (msgs == null)
+				msgs = notification;
+			else
+				msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void setTarget(PageflowNode newTarget) {
+		if (newTarget != target) {
+			NotificationChain msgs = null;
+			if (target != null)
+				msgs = ((InternalEObject) target).eInverseRemove(this,
+						PageflowPackage.PAGEFLOW_NODE__INLINKS,
+						PageflowNode.class, msgs);
+			if (newTarget != null)
+				msgs = ((InternalEObject) newTarget).eInverseAdd(this,
+						PageflowPackage.PAGEFLOW_NODE__INLINKS,
+						PageflowNode.class, msgs);
+			msgs = basicSetTarget(newTarget, msgs);
+			if (msgs != null)
+				msgs.dispatch();
+		} else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					PageflowPackage.PF_LINK__TARGET, newTarget, newTarget));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public PageflowNode getSource() {
+		if (source != null && source.eIsProxy()) {
+			PageflowNode oldSource = source;
+			source = (PageflowNode) eResolveProxy((InternalEObject) source);
+			if (source != oldSource) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+							PageflowPackage.PF_LINK__SOURCE, oldSource, source));
+			}
+		}
+		return source;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public PageflowNode basicGetSource() {
+		return source;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public NotificationChain basicSetSource(PageflowNode newSource,
+			NotificationChain msgs) {
+		// Assert.isTrue(newSource != null);
+		PageflowNode oldSource = source;
+		source = newSource;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this,
+					Notification.SET, PageflowPackage.PF_LINK__SOURCE,
+					oldSource, newSource);
+			if (msgs == null)
+				msgs = notification;
+			else
+				msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void setSource(PageflowNode newSource) {
+		// Assert.isTrue(newSource != null);
+		if (newSource != source) {
+			NotificationChain msgs = null;
+			if (source != null)
+				msgs = ((InternalEObject) source).eInverseRemove(this,
+						PageflowPackage.PAGEFLOW_NODE__OUTLINKS,
+						PageflowNode.class, msgs);
+			if (newSource != null)
+				msgs = ((InternalEObject) newSource).eInverseAdd(this,
+						PageflowPackage.PAGEFLOW_NODE__OUTLINKS,
+						PageflowNode.class, msgs);
+			msgs = basicSetSource(newSource, msgs);
+			if (msgs != null)
+				msgs.dispatch();
+		} else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					PageflowPackage.PF_LINK__SOURCE, newSource, newSource));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public EList getBendPoints() {
+		if (bendPoints == null) {
+			bendPoints = new EObjectContainmentWithInverseEList(
+					PFLinkBendpoint.class, this,
+					PageflowPackage.PF_LINK__BEND_POINTS,
+					PageflowPackage.PF_LINK_BENDPOINT__LINK);
+		}
+		return bendPoints;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd,
+			int featureID, Class baseClass, NotificationChain msgs) {
+		if (featureID >= 0) {
+			switch (eDerivedStructuralFeatureID(featureID, baseClass)) {
+			case PageflowPackage.PF_LINK__PAGEFLOW:
+				if (eContainer != null)
+					msgs = eBasicRemoveFromContainer(msgs);
+				return eBasicSetContainer(otherEnd,
+						PageflowPackage.PF_LINK__PAGEFLOW, msgs);
+			case PageflowPackage.PF_LINK__TARGET:
+				if (target != null)
+					msgs = ((InternalEObject) target).eInverseRemove(this,
+							PageflowPackage.PAGEFLOW_NODE__INLINKS,
+							PageflowNode.class, msgs);
+				return basicSetTarget((PageflowNode) otherEnd, msgs);
+			case PageflowPackage.PF_LINK__SOURCE:
+				if (source != null)
+					msgs = ((InternalEObject) source).eInverseRemove(this,
+							PageflowPackage.PAGEFLOW_NODE__OUTLINKS,
+							PageflowNode.class, msgs);
+				return basicSetSource((PageflowNode) otherEnd, msgs);
+			case PageflowPackage.PF_LINK__BEND_POINTS:
+				return ((InternalEList) getBendPoints()).basicAdd(otherEnd,
+						msgs);
+			default:
+				return eDynamicInverseAdd(otherEnd, featureID, baseClass, msgs);
+			}
+		}
+		if (eContainer != null)
+			msgs = eBasicRemoveFromContainer(msgs);
+		return eBasicSetContainer(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd,
+			int featureID, Class baseClass, NotificationChain msgs) {
+		if (featureID >= 0) {
+			switch (eDerivedStructuralFeatureID(featureID, baseClass)) {
+			case PageflowPackage.PF_LINK__PAGEFLOW:
+				return eBasicSetContainer(null,
+						PageflowPackage.PF_LINK__PAGEFLOW, msgs);
+			case PageflowPackage.PF_LINK__TARGET:
+				return basicSetTarget(null, msgs);
+			case PageflowPackage.PF_LINK__SOURCE:
+				return basicSetSource(null, msgs);
+			case PageflowPackage.PF_LINK__BEND_POINTS:
+				return ((InternalEList) getBendPoints()).basicRemove(otherEnd,
+						msgs);
+			default:
+				return eDynamicInverseRemove(otherEnd, featureID, baseClass,
+						msgs);
+			}
+		}
+		return eBasicSetContainer(null, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) {
+		if (eContainerFeatureID >= 0) {
+			switch (eContainerFeatureID) {
+			case PageflowPackage.PF_LINK__PAGEFLOW:
+				return ((InternalEObject) eContainer).eInverseRemove(this,
+						PageflowPackage.PAGEFLOW__LINKS, Pageflow.class, msgs);
+			default:
+				return eDynamicBasicRemoveFromContainer(msgs);
+			}
+		}
+		return ((InternalEObject) eContainer).eInverseRemove(this,
+				EOPPOSITE_FEATURE_BASE - eContainerFeatureID, null, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public Object eGet(EStructuralFeature eFeature, boolean resolve) {
+		switch (eDerivedStructuralFeatureID(eFeature)) {
+		case PageflowPackage.PF_LINK__NAME:
+			return getName();
+		case PageflowPackage.PF_LINK__COMMENT:
+			return getComment();
+		case PageflowPackage.PF_LINK__X:
+			return new Integer(getX());
+		case PageflowPackage.PF_LINK__Y:
+			return new Integer(getY());
+		case PageflowPackage.PF_LINK__WIDTH:
+			return new Integer(getWidth());
+		case PageflowPackage.PF_LINK__HEIGHT:
+			return new Integer(getHeight());
+		case PageflowPackage.PF_LINK__ID:
+			return getId();
+		case PageflowPackage.PF_LINK__PAGEFLOW:
+			return getPageflow();
+		case PageflowPackage.PF_LINK__TARGET:
+			if (resolve)
+				return getTarget();
+			return basicGetTarget();
+		case PageflowPackage.PF_LINK__SOURCE:
+			if (resolve)
+				return getSource();
+			return basicGetSource();
+		case PageflowPackage.PF_LINK__OUTCOME:
+			return getOutcome();
+		case PageflowPackage.PF_LINK__REDIRECT:
+			return isRedirect() ? Boolean.TRUE : Boolean.FALSE;
+		case PageflowPackage.PF_LINK__BEND_POINTS:
+			return getBendPoints();
+		case PageflowPackage.PF_LINK__SMALLICON:
+			return getSmallicon();
+		case PageflowPackage.PF_LINK__LARGEICON:
+			return getLargeicon();
+		case PageflowPackage.PF_LINK__FROMACTION:
+			return getFromaction();
+		}
+		return super.eGet(eFeature, resolve);// eDynamicGet(eFeature,
+		// resolve);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void eSet(EStructuralFeature eFeature, Object newValue) {
+		switch (eDerivedStructuralFeatureID(eFeature)) {
+		case PageflowPackage.PF_LINK__NAME:
+			setName((String) newValue);
+			return;
+		case PageflowPackage.PF_LINK__COMMENT:
+			setComment((String) newValue);
+			return;
+		case PageflowPackage.PF_LINK__X:
+			setX(((Integer) newValue).intValue());
+			return;
+		case PageflowPackage.PF_LINK__Y:
+			setY(((Integer) newValue).intValue());
+			return;
+		case PageflowPackage.PF_LINK__WIDTH:
+			setWidth(((Integer) newValue).intValue());
+			return;
+		case PageflowPackage.PF_LINK__HEIGHT:
+			setHeight(((Integer) newValue).intValue());
+			return;
+		case PageflowPackage.PF_LINK__ID:
+			setId((String) newValue);
+			return;
+		case PageflowPackage.PF_LINK__PAGEFLOW:
+			setPageflow((Pageflow) newValue);
+			return;
+		case PageflowPackage.PF_LINK__TARGET:
+			setTarget((PageflowNode) newValue);
+			return;
+		case PageflowPackage.PF_LINK__SOURCE:
+			setSource((PageflowNode) newValue);
+			return;
+		case PageflowPackage.PF_LINK__OUTCOME:
+			setOutcome((String) newValue);
+			return;
+		case PageflowPackage.PF_LINK__REDIRECT:
+			setRedirect(((Boolean) newValue).booleanValue());
+			return;
+		case PageflowPackage.PF_LINK__BEND_POINTS:
+			getBendPoints().clear();
+			getBendPoints().addAll((Collection) newValue);
+			return;
+		case PageflowPackage.PF_LINK__SMALLICON:
+			setSmallicon((String) newValue);
+			return;
+		case PageflowPackage.PF_LINK__LARGEICON:
+			setLargeicon((String) newValue);
+			return;
+		case PageflowPackage.PF_LINK__FROMACTION:
+			setFromaction((String) newValue);
+			return;
+		}
+		super.eSet(eFeature, newValue);// eDynamicSet(eFeature, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void eUnset(EStructuralFeature eFeature) {
+		switch (eDerivedStructuralFeatureID(eFeature)) {
+		case PageflowPackage.PF_LINK__NAME:
+			setName(NAME_EDEFAULT);
+			return;
+		case PageflowPackage.PF_LINK__COMMENT:
+			setComment(COMMENT_EDEFAULT);
+			return;
+		case PageflowPackage.PF_LINK__X:
+			setX(X_EDEFAULT);
+			return;
+		case PageflowPackage.PF_LINK__Y:
+			setY(Y_EDEFAULT);
+			return;
+		case PageflowPackage.PF_LINK__WIDTH:
+			setWidth(WIDTH_EDEFAULT);
+			return;
+		case PageflowPackage.PF_LINK__HEIGHT:
+			setHeight(HEIGHT_EDEFAULT);
+			return;
+		case PageflowPackage.PF_LINK__ID:
+			setId(ID_EDEFAULT);
+			return;
+		case PageflowPackage.PF_LINK__PAGEFLOW:
+			setPageflow((Pageflow) null);
+			return;
+		case PageflowPackage.PF_LINK__TARGET:
+			setTarget((PageflowNode) null);
+			return;
+		case PageflowPackage.PF_LINK__SOURCE:
+			setSource((PageflowNode) null);
+			return;
+		case PageflowPackage.PF_LINK__OUTCOME:
+			setOutcome(OUTCOME_EDEFAULT);
+			return;
+		case PageflowPackage.PF_LINK__REDIRECT:
+			setRedirect(REDIRECT_EDEFAULT);
+			return;
+		case PageflowPackage.PF_LINK__BEND_POINTS:
+			getBendPoints().clear();
+			return;
+		case PageflowPackage.PF_LINK__SMALLICON:
+			setSmallicon(SMALLICON_EDEFAULT);
+			return;
+		case PageflowPackage.PF_LINK__LARGEICON:
+			setLargeicon(LARGEICON_EDEFAULT);
+			return;
+		case PageflowPackage.PF_LINK__FROMACTION:
+			setFromaction(FROMACTION_EDEFAULT);
+			return;
+		}
+		super.eUnset(eFeature);// eDynamicUnset(eFeature);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public boolean eIsSet(EStructuralFeature eFeature) {
+		switch (eDerivedStructuralFeatureID(eFeature)) {
+		case PageflowPackage.PF_LINK__NAME:
+			return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT
+					.equals(name);
+		case PageflowPackage.PF_LINK__COMMENT:
+			return COMMENT_EDEFAULT == null ? comment != null
+					: !COMMENT_EDEFAULT.equals(comment);
+		case PageflowPackage.PF_LINK__X:
+			return x != X_EDEFAULT;
+		case PageflowPackage.PF_LINK__Y:
+			return y != Y_EDEFAULT;
+		case PageflowPackage.PF_LINK__WIDTH:
+			return width != WIDTH_EDEFAULT;
+		case PageflowPackage.PF_LINK__HEIGHT:
+			return height != HEIGHT_EDEFAULT;
+		case PageflowPackage.PF_LINK__ID:
+			return ID_EDEFAULT == null ? getId() != null : !ID_EDEFAULT
+					.equals(getId());
+		case PageflowPackage.PF_LINK__PAGEFLOW:
+			return getPageflow() != null;
+		case PageflowPackage.PF_LINK__TARGET:
+			return target != null;
+		case PageflowPackage.PF_LINK__SOURCE:
+			return source != null;
+		case PageflowPackage.PF_LINK__OUTCOME:
+			return OUTCOME_EDEFAULT == null ? getOutcome() != null
+					: !OUTCOME_EDEFAULT.equals(getOutcome());
+		case PageflowPackage.PF_LINK__REDIRECT:
+			return isRedirect() != REDIRECT_EDEFAULT;
+		case PageflowPackage.PF_LINK__BEND_POINTS:
+			return bendPoints != null && !bendPoints.isEmpty();
+		case PageflowPackage.PF_LINK__SMALLICON:
+			return SMALLICON_EDEFAULT == null ? getSmallicon() != null
+					: !SMALLICON_EDEFAULT.equals(getSmallicon());
+		case PageflowPackage.PF_LINK__LARGEICON:
+			return LARGEICON_EDEFAULT == null ? getLargeicon() != null
+					: !LARGEICON_EDEFAULT.equals(getLargeicon());
+		case PageflowPackage.PF_LINK__FROMACTION:
+			return FROMACTION_EDEFAULT == null ? getFromaction() != null
+					: !FROMACTION_EDEFAULT.equals(getFromaction());
+		}
+		return super.eIsSet(eFeature);// eDynamicIsSet(eFeature);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (smallicon: ");
+		result.append(getSmallicon());
+		result.append(", largeicon: ");
+		result.append(getLargeicon());
+		result.append(", fromaction: ");
+		result.append(getFromaction());
+		result.append(", outcome: ");
+		result.append(getOutcome());
+		result.append(", redirect: ");
+		result.append(isRedirect());
+		result.append(')');
+		return result.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> insert a new bendpoint to the link <!--
+	 * end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public void insertBendpoint(int index, PFLinkBendpoint point) {
+		getBendPoints().add(index, point);
+
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.ADD,
+					PageflowPackage.PF_LINK__BEND_POINTS, null, point));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> remove the current bendpoint <!-- end-user-doc
+	 * -->
+	 * 
+	 * @generated NOT
+	 */
+	public void removeBendpoint(int index) {
+		getBendPoints().remove(index);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> Set the current bendpoint <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public void setBendpoint(int index, PFLinkBendpoint point) {
+		getBendPoints().set(index, point);
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					PageflowPackage.PF_LINK__BEND_POINTS, null, point));
+
+	}
+
+	/**
+	 * <!-- begin-user-doc --> Set a group of bendpoints to reconstruct the link
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public void setBendpoints(Vector points) {
+		bendPoints = (EList) points;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.ADD_MANY,
+					PageflowPackage.PF_LINK__BEND_POINTS, null, points));
+
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public boolean isRedirect() {
+		boolean result = false;
+		if (getFCElements().size() > 0) {
+			RedirectType outcome = ((NavigationCaseType) getFCElements().get(0))
+					.getRedirect();
+			if (outcome != null) {
+				result = true;
+			}
+		}
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public void setRedirect(boolean newRedirect) {
+		RedirectType redirect = null;
+		RedirectType oldRedirect = null;
+		if (getFCElements().size() > 0) {
+			oldRedirect = ((NavigationCaseType) getFCElements().get(0))
+					.getRedirect();
+			if (!newRedirect) {
+				redirect = null;
+			} else {
+				if (oldRedirect == null) {
+					redirect = FacesConfigFactory.eINSTANCE
+							.createRedirectType();
+				}
+			}
+			((NavigationCaseType) getFCElements().get(0)).setRedirect(redirect);
+		}
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					PageflowPackage.PF_LINK__REDIRECT, oldRedirect,
+					new Boolean(newRedirect)));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public String getOutcome() {
+		String result = null;
+		if (getFCElements().size() > 0) {
+			FromOutcomeType outcome = ((NavigationCaseType) getFCElements()
+					.get(0)).getFromOutcome();
+			if (outcome != null) {
+				result = outcome.getTextContent();
+			}
+		}
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public void setOutcome(String newValue) {
+		FromOutcomeType oldOutcome = null;
+		if (getFCElements().size() > 0) {
+			oldOutcome = ((NavigationCaseType) getFCElements().get(0))
+					.getFromOutcome();
+			if (newValue == null || newValue.length() == 0) {
+				((NavigationCaseType) getFCElements().get(0))
+						.setFromOutcome(null);
+			} else {
+				if (oldOutcome == null) {
+					FromOutcomeType newOutcome = FacesConfigFactory.eINSTANCE
+							.createFromOutcomeType();
+					newOutcome.setTextContent(newValue);
+					((NavigationCaseType) getFCElements().get(0))
+							.setFromOutcome(newOutcome);
+				} else {
+					oldOutcome.setTextContent(newValue);
+				}
+			}
+		}
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					PageflowPackage.PF_LINK__OUTCOME, oldOutcome, newValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public String getSmallicon() {
+		SmallIconType result = null;
+		if (getFCElements().size() > 0) {
+			List icons = ((NavigationCaseType) getFCElements().get(0))
+					.getIcon();
+			if (icons.size() > 0) {
+				result = ((IconType) icons.get(0)).getSmallIcon();
+			}
+		}
+		return result != null ? result.getTextContent() : null;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public void setSmallicon(String newValue) {
+		SmallIconType oldSmallicon = null;
+		SmallIconType newSmallIconType = null;
+		IconType icon = null;
+		if (getFCElements().size() > 0) {
+			List icons = ((NavigationCaseType) getFCElements().get(0))
+					.getIcon();
+			if (newValue == null || newValue.length() == 0) {
+				if (icons.size() > 0) {
+					if (((IconType) icons.get(0)).getSmallIcon() != null) {
+						((IconType) icons.get(0)).setSmallIcon(null);
+					}
+				}
+			} else {
+				if (icons.size() == 0) {
+					icon = FacesConfigFactory.eINSTANCE.createIconType();
+					newSmallIconType = FacesConfigFactory.eINSTANCE
+							.createSmallIconType();
+					newSmallIconType.setTextContent(newValue);
+					icon.setSmallIcon(newSmallIconType);
+					icons.add(icon);
+				} else if (((IconType) icons.get(0)).getSmallIcon() == null) {
+					newSmallIconType = FacesConfigFactory.eINSTANCE
+							.createSmallIconType();
+					newSmallIconType.setTextContent(newValue);
+					icon = ((IconType) icons.get(0));
+					icon.setSmallIcon(newSmallIconType);
+				} else {
+					oldSmallicon = ((IconType) icons.get(0)).getSmallIcon();
+					oldSmallicon.setTextContent(newValue);
+				}
+			}
+		}
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					PageflowPackage.PF_LINK__SMALLICON, oldSmallicon, newValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public String getLargeicon() {
+		LargeIconType result = null;
+		if (getFCElements().size() > 0) {
+			List icons = ((NavigationCaseType) getFCElements().get(0))
+					.getIcon();
+			if (icons.size() > 0) {
+				result = ((IconType) icons.get(0)).getLargeIcon();
+			}
+		}
+		return result != null ? result.getTextContent() : null;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public void setLargeicon(String newValue) {
+		LargeIconType oldLargeIcon = null;
+		LargeIconType newLargeIconType = null;
+		IconType icon = null;
+		if (getFCElements().size() > 0) {
+			List icons = ((NavigationCaseType) getFCElements().get(0))
+					.getIcon();
+			if (newValue == null || newValue.length() == 0) {
+				if (icons.size() > 0) {
+					if (((IconType) icons.get(0)).getLargeIcon() != null) {
+						((IconType) icons.get(0)).setLargeIcon(null);
+					}
+				}
+			} else {
+				if (icons.size() == 0) {
+					icon = FacesConfigFactory.eINSTANCE.createIconType();
+					newLargeIconType = FacesConfigFactory.eINSTANCE
+							.createLargeIconType();
+					newLargeIconType.setTextContent(newValue);
+					icon.setLargeIcon(newLargeIconType);
+					icons.add(icon);
+				} else if (((IconType) icons.get(0)).getLargeIcon() == null) {
+					newLargeIconType = FacesConfigFactory.eINSTANCE
+							.createLargeIconType();
+					newLargeIconType.setTextContent(newValue);
+					icon = ((IconType) icons.get(0));
+					icon.setLargeIcon(newLargeIconType);
+				} else {
+					oldLargeIcon = ((IconType) icons.get(0)).getLargeIcon();
+					oldLargeIcon.setTextContent(newValue);
+				}
+			}
+		}
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					PageflowPackage.PF_LINK__LARGEICON, oldLargeIcon, newValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public String getFromaction() {
+		String result = null;
+		if (getFCElements().size() > 0) {
+			FromActionType fromActionType = ((NavigationCaseType) getFCElements()
+					.get(0)).getFromAction();
+			if (fromActionType != null) {
+				result = fromActionType.getTextContent();
+			}
+		}
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public void setFromaction(String newFromaction) {
+		FromActionType oldFromActionType = null;
+		if (getFCElements().size() > 0) {
+			oldFromActionType = ((NavigationCaseType) getFCElements().get(0))
+					.getFromAction();
+			if (newFromaction == null || newFromaction.length() == 0) {
+				((NavigationCaseType) getFCElements().get(0))
+						.setFromAction(null);
+			} else {
+				if (oldFromActionType == null) {
+					oldFromActionType = FacesConfigFactory.eINSTANCE
+							.createFromActionType();
+					oldFromActionType.setTextContent(newFromaction);
+					((NavigationCaseType) getFCElements().get(0))
+							.setFromAction(oldFromActionType);
+				} else {
+					oldFromActionType.setTextContent(newFromaction);
+				}
+			}
+		}
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					PageflowPackage.PF_LINK__FROMACTION, oldFromActionType,
+					newFromaction));
+	}
+
+}
+// PFLinkImpl
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/impl/PFPageImpl.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/impl/PFPageImpl.java
new file mode 100644
index 0000000..a71d208
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/impl/PFPageImpl.java
@@ -0,0 +1,665 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2005 Sybase, Inc. 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:
+ *     Sybase, Inc. - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.jst.jsf.facesconfig.emf.DescriptionType;
+import org.eclipse.jst.jsf.facesconfig.emf.DisplayNameType;
+import org.eclipse.jst.jsf.facesconfig.emf.FacesConfigFactory;
+import org.eclipse.jst.jsf.facesconfig.emf.FromViewIdType;
+import org.eclipse.jst.jsf.facesconfig.emf.IconType;
+import org.eclipse.jst.jsf.facesconfig.emf.LargeIconType;
+import org.eclipse.jst.jsf.facesconfig.emf.NavigationRuleType;
+import org.eclipse.jst.jsf.facesconfig.emf.SmallIconType;
+import org.eclipse.jst.jsf.facesconfig.emf.ToViewIdType;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFPage;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.Pageflow;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>PF Page</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PFPageImpl#getPath <em>Path</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PFPageImpl#getSmallicon <em>Smallicon</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PFPageImpl#getLargeicon <em>Largeicon</em>}</li>
+ * </ul>
+ * </p>
+ * 
+ * @generated
+ */
+public class PFPageImpl extends PageflowNodeImpl implements PFPage {
+	private String path;
+
+	/**
+	 * The default value of the '{@link #getPath() <em>Path</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getPath()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String PATH_EDEFAULT = null;
+
+	/**
+	 * The default value of the '{@link #getSmallicon() <em>Smallicon</em>}'
+	 * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getSmallicon()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String SMALLICON_EDEFAULT = null;
+
+	/**
+	 * The default value of the '{@link #getLargeicon() <em>Largeicon</em>}'
+	 * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getLargeicon()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String LARGEICON_EDEFAULT = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected PFPageImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return PageflowPackage.eINSTANCE.getPFPage();
+	}
+
+	public NavigationRuleType resolveRule(Object object) {
+		if (object instanceof FromViewIdType) {
+			return (NavigationRuleType) ((FromViewIdType) object).eContainer();
+		}
+		return null;
+	}
+
+	public void setInitPath(String path) {
+		this.path = path;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public String getPath() {
+		// String result = null;
+		// if (getFCElements().size() > 0) {
+		// for (int i = 0, n = getFCElements().size(); i < n; i++) {
+		// if (getFCElements().get(i) instanceof FromViewIdType) {
+		// result = ((FromViewIdType) getFCElements().get(i))
+		// .getTextContent();
+		// }
+		// }
+		// if (result == null) {
+		// result = ((ToViewIdType) getFCElements().get(0))
+		// .getTextContent();
+		// }
+		// }
+		// return result;
+		return path;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void setPath(String newPath) {
+		String oldPath = path;
+		if (getFCElements().size() > 0) {
+			for (int i = 0, n = getFCElements().size(); i < n; i++) {
+				if (getFCElements().get(i) instanceof FromViewIdType) {
+					((FromViewIdType) getFCElements().get(i))
+							.setTextContent(newPath);
+				} else {
+					((ToViewIdType) getFCElements().get(i))
+							.setTextContent(newPath);
+				}
+			}
+		}
+		this.path = newPath;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					PageflowPackage.PF_PAGE__PATH, oldPath, newPath));
+	}
+
+	public void setComment(String newComment) {
+		String oldComment = null;
+		if (getFCElements().size() > 0) {
+			for (int i = 0, n = getFCElements().size(); i < n; i++) {
+				NavigationRuleType rule = null;
+				if ((rule = resolveRule(getFCElements().get(i))) != null) {
+					rule.getDescription().clear();
+					DescriptionType description = FacesConfigFactory.eINSTANCE
+							.createDescriptionType();
+					description.setTextContent(newComment);
+					rule.getDescription().add(description);
+				}
+			}
+		}
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					PageflowPackage.PAGEFLOW_ELEMENT__COMMENT, oldComment,
+					comment));
+
+	}
+
+	public String getComment() {
+		String result = null;
+		if (getFCElements().size() > 0) {
+			for (int i = 0, n = getFCElements().size(); i < n; i++) {
+				NavigationRuleType rule = null;
+				if ((rule = resolveRule(getFCElements().get(i))) != null) {
+					List descriptions = rule.getDescription();
+					if (descriptions.size() > 0) {
+						result = ((DescriptionType) descriptions.get(0))
+								.getTextContent();
+					}
+				}
+			}
+		}
+		return result;
+	}
+
+	public String getName() {
+		if (this.getOutlinks().size() == 0) {
+			return getPath();
+		} else {
+			String result = null;
+			if (getFCElements().size() > 0) {
+				for (int i = 0, n = getFCElements().size(); i < n; i++) {
+					NavigationRuleType rule = null;
+					if ((rule = resolveRule(getFCElements().get(i))) != null) {
+						List displaynames = rule.getDisplayName();
+						if (displaynames.size() > 0) {
+							result = ((DisplayNameType) displaynames.get(0))
+									.getTextContent();
+							break;
+						}
+					}
+				}
+			}
+			return result;
+		}
+	}
+
+	public void setName(String newName) {
+		String oldComment = null;
+		if (getOutlinks().size() == 0) {
+			super.setName(newName);
+		} else {
+			if (getFCElements().size() > 0) {
+				for (int i = 0, n = getFCElements().size(); i < n; i++) {
+					NavigationRuleType rule = null;
+					if ((rule = resolveRule(getFCElements().get(i))) != null) {
+						rule.getDisplayName().clear();
+						DisplayNameType dsiplayname = FacesConfigFactory.eINSTANCE
+								.createDisplayNameType();
+						dsiplayname.setTextContent(newName);
+						rule.getDisplayName().add(dsiplayname);
+					}
+				}
+			}
+			if (eNotificationRequired())
+				eNotify(new ENotificationImpl(this, Notification.SET,
+						PageflowPackage.PAGEFLOW_ELEMENT__COMMENT, oldComment,
+						comment));
+
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public String getSmallicon() {
+		SmallIconType result = null;
+		if (getFCElements().size() > 0) {
+			for (int i = 0, n = getFCElements().size(); i < n; i++) {
+				NavigationRuleType rule = null;
+				if ((rule = resolveRule(getFCElements().get(i))) != null) {
+					List icons = rule.getIcon();
+					if (icons.size() > 0) {
+						result = ((IconType) icons.get(0)).getSmallIcon();
+					}
+				}
+			}
+		}
+		return result == null ? null : result.getTextContent();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void setSmallicon(String newValue) {
+		SmallIconType oldSmallicon = null;
+		SmallIconType newSmallIconType = null;
+		IconType icon = null;
+		if (getFCElements().size() > 0) {
+			for (int i = 0, n = getFCElements().size(); i < n; i++) {
+				NavigationRuleType rule = null;
+				if ((rule = resolveRule(getFCElements().get(i))) != null) {
+					List icons = rule.getIcon();
+					if (newValue == null || newValue.length() == 0) {
+						if (icons.size() > 0) {
+							if (((IconType) icons.get(0)).getSmallIcon() != null) {
+								((IconType) icons.get(0)).setSmallIcon(null);
+							}
+						}
+					} else {
+						if (icons.size() == 0) {
+							icon = FacesConfigFactory.eINSTANCE
+									.createIconType();
+							newSmallIconType = FacesConfigFactory.eINSTANCE
+									.createSmallIconType();
+							newSmallIconType.setTextContent(newValue);
+							icon.setSmallIcon(newSmallIconType);
+							icons.add(icon);
+						} else if (((IconType) icons.get(0)).getSmallIcon() == null) {
+							newSmallIconType = FacesConfigFactory.eINSTANCE
+									.createSmallIconType();
+							newSmallIconType.setTextContent(newValue);
+							icon = ((IconType) icons.get(0));
+							icon.setSmallIcon(newSmallIconType);
+						} else {
+							oldSmallicon = ((IconType) icons.get(0))
+									.getSmallIcon();
+							oldSmallicon.setTextContent(newValue);
+						}
+					}
+				}
+			}
+		}
+
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					PageflowPackage.PF_PAGE__SMALLICON, oldSmallicon, newValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public String getLargeicon() {
+		LargeIconType result = null;
+		if (getFCElements().size() > 0) {
+			for (int i = 0, n = getFCElements().size(); i < n; i++) {
+				NavigationRuleType rule = null;
+				if ((rule = resolveRule(getFCElements().get(i))) != null) {
+					List icons = rule.getIcon();
+					if (icons.size() > 0) {
+						result = ((IconType) icons.get(0)).getLargeIcon();
+					}
+				}
+			}
+		}
+		return result == null ? null : result.getTextContent();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void setLargeicon(String newValue) {
+		// String oldLargeicon = null;
+		// IconType icon = null;
+		LargeIconType oldLargeIcon = null;
+		LargeIconType newLargeIconType = null;
+		IconType icon = null;
+		if (getFCElements().size() > 0) {
+			for (int i = 0, n = getFCElements().size(); i < n; i++) {
+				NavigationRuleType rule = null;
+				if ((rule = resolveRule(getFCElements().get(i))) != null) {
+					List icons = rule.getIcon();
+					if (newValue == null || newValue.length() == 0) {
+						if (icons.size() > 0) {
+							if (((IconType) icons.get(0)).getLargeIcon() != null) {
+								((IconType) icons.get(0)).setLargeIcon(null);
+							}
+						}
+					} else {
+						if (icons.size() == 0) {
+							icon = FacesConfigFactory.eINSTANCE
+									.createIconType();
+							newLargeIconType = FacesConfigFactory.eINSTANCE
+									.createLargeIconType();
+							newLargeIconType.setTextContent(newValue);
+							icon.setLargeIcon(newLargeIconType);
+							icons.add(icon);
+						} else if (((IconType) icons.get(0)).getLargeIcon() == null) {
+							newLargeIconType = FacesConfigFactory.eINSTANCE
+									.createLargeIconType();
+							newLargeIconType.setTextContent(newValue);
+							icon = ((IconType) icons.get(0));
+							icon.setLargeIcon(newLargeIconType);
+						} else {
+							oldLargeIcon = ((IconType) icons.get(0))
+									.getLargeIcon();
+							oldLargeIcon.setTextContent(newValue);
+						}
+					}
+				}
+			}
+		}
+
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					PageflowPackage.PF_PAGE__LARGEICON, oldLargeIcon, newValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public NotificationChain eInverseAdd(InternalEObject otherEnd,
+			int featureID, Class baseClass, NotificationChain msgs) {
+		if (featureID >= 0) {
+			switch (eDerivedStructuralFeatureID(featureID, baseClass)) {
+			case PageflowPackage.PF_PAGE__PAGEFLOW:
+				if (eContainer != null)
+					msgs = eBasicRemoveFromContainer(msgs);
+				return eBasicSetContainer(otherEnd,
+						PageflowPackage.PF_PAGE__PAGEFLOW, msgs);
+			case PageflowPackage.PF_PAGE__OUTLINKS:
+				return ((InternalEList) getOutlinks()).basicAdd(otherEnd, msgs);
+			case PageflowPackage.PF_PAGE__INLINKS:
+				return ((InternalEList) getInlinks()).basicAdd(otherEnd, msgs);
+			default:
+				return eDynamicInverseAdd(otherEnd, featureID, baseClass, msgs);
+			}
+		}
+		if (eContainer != null)
+			msgs = eBasicRemoveFromContainer(msgs);
+		return eBasicSetContainer(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public NotificationChain eInverseRemove(InternalEObject otherEnd,
+			int featureID, Class baseClass, NotificationChain msgs) {
+		if (featureID >= 0) {
+			switch (eDerivedStructuralFeatureID(featureID, baseClass)) {
+			case PageflowPackage.PF_PAGE__PAGEFLOW:
+				return eBasicSetContainer(null,
+						PageflowPackage.PF_PAGE__PAGEFLOW, msgs);
+			case PageflowPackage.PF_PAGE__OUTLINKS:
+				return ((InternalEList) getOutlinks()).basicRemove(otherEnd,
+						msgs);
+			case PageflowPackage.PF_PAGE__INLINKS:
+				return ((InternalEList) getInlinks()).basicRemove(otherEnd,
+						msgs);
+			default:
+				return eDynamicInverseRemove(otherEnd, featureID, baseClass,
+						msgs);
+			}
+		}
+		return eBasicSetContainer(null, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) {
+		if (eContainerFeatureID >= 0) {
+			switch (eContainerFeatureID) {
+			case PageflowPackage.PF_PAGE__PAGEFLOW:
+				return ((InternalEObject) eContainer).eInverseRemove(this,
+						PageflowPackage.PAGEFLOW__NODES, Pageflow.class, msgs);
+			default:
+				return eDynamicBasicRemoveFromContainer(msgs);
+			}
+		}
+		return ((InternalEObject) eContainer).eInverseRemove(this,
+				EOPPOSITE_FEATURE_BASE - eContainerFeatureID, null, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public Object eGet(EStructuralFeature eFeature, boolean resolve) {
+		switch (eDerivedStructuralFeatureID(eFeature)) {
+		case PageflowPackage.PF_PAGE__NAME:
+			return getName();
+		case PageflowPackage.PF_PAGE__COMMENT:
+			return getComment();
+		case PageflowPackage.PF_PAGE__X:
+			return new Integer(getX());
+		case PageflowPackage.PF_PAGE__Y:
+			return new Integer(getY());
+		case PageflowPackage.PF_PAGE__WIDTH:
+			return new Integer(getWidth());
+		case PageflowPackage.PF_PAGE__HEIGHT:
+			return new Integer(getHeight());
+		case PageflowPackage.PF_PAGE__ID:
+			return getId();
+		case PageflowPackage.PF_PAGE__PAGEFLOW:
+			return getPageflow();
+		case PageflowPackage.PF_PAGE__OUTLINKS:
+			return getOutlinks();
+		case PageflowPackage.PF_PAGE__INLINKS:
+			return getInlinks();
+		case PageflowPackage.PF_PAGE__PATH:
+			return getPath();
+		case PageflowPackage.PF_PAGE__SMALLICON:
+			return getSmallicon();
+		case PageflowPackage.PF_PAGE__LARGEICON:
+			return getLargeicon();
+		}
+		return super.eGet(eFeature, resolve);// eDynamicGet(eFeature,
+		// resolve);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void eSet(EStructuralFeature eFeature, Object newValue) {
+		switch (eDerivedStructuralFeatureID(eFeature)) {
+		case PageflowPackage.PF_PAGE__NAME:
+			setName((String) newValue);
+			return;
+		case PageflowPackage.PF_PAGE__COMMENT:
+			setComment((String) newValue);
+			return;
+		case PageflowPackage.PF_PAGE__X:
+			setX(((Integer) newValue).intValue());
+			return;
+		case PageflowPackage.PF_PAGE__Y:
+			setY(((Integer) newValue).intValue());
+			return;
+		case PageflowPackage.PF_PAGE__WIDTH:
+			setWidth(((Integer) newValue).intValue());
+			return;
+		case PageflowPackage.PF_PAGE__HEIGHT:
+			setHeight(((Integer) newValue).intValue());
+			return;
+		case PageflowPackage.PF_PAGE__ID:
+			setId((String) newValue);
+			return;
+		case PageflowPackage.PF_PAGE__PAGEFLOW:
+			setPageflow((Pageflow) newValue);
+			return;
+		case PageflowPackage.PF_PAGE__OUTLINKS:
+			getOutlinks().clear();
+			getOutlinks().addAll((Collection) newValue);
+			return;
+		case PageflowPackage.PF_PAGE__INLINKS:
+			getInlinks().clear();
+			getInlinks().addAll((Collection) newValue);
+			return;
+		case PageflowPackage.PF_PAGE__PATH:
+			setPath((String) newValue);
+			return;
+		case PageflowPackage.PF_PAGE__SMALLICON:
+			setSmallicon((String) newValue);
+			return;
+		case PageflowPackage.PF_PAGE__LARGEICON:
+			setLargeicon((String) newValue);
+			return;
+		}
+		super.eSet(eFeature, newValue);// eDynamicSet(eFeature, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void eUnset(EStructuralFeature eFeature) {
+		switch (eDerivedStructuralFeatureID(eFeature)) {
+		case PageflowPackage.PF_PAGE__NAME:
+			setName(NAME_EDEFAULT);
+			return;
+		case PageflowPackage.PF_PAGE__COMMENT:
+			setComment(COMMENT_EDEFAULT);
+			return;
+		case PageflowPackage.PF_PAGE__X:
+			setX(X_EDEFAULT);
+			return;
+		case PageflowPackage.PF_PAGE__Y:
+			setY(Y_EDEFAULT);
+			return;
+		case PageflowPackage.PF_PAGE__WIDTH:
+			setWidth(WIDTH_EDEFAULT);
+			return;
+		case PageflowPackage.PF_PAGE__HEIGHT:
+			setHeight(HEIGHT_EDEFAULT);
+			return;
+		case PageflowPackage.PF_PAGE__ID:
+			setId(ID_EDEFAULT);
+			return;
+		case PageflowPackage.PF_PAGE__PAGEFLOW:
+			setPageflow((Pageflow) null);
+			return;
+		case PageflowPackage.PF_PAGE__OUTLINKS:
+			getOutlinks().clear();
+			return;
+		case PageflowPackage.PF_PAGE__INLINKS:
+			getInlinks().clear();
+			return;
+		case PageflowPackage.PF_PAGE__PATH:
+			setPath(PATH_EDEFAULT);
+			return;
+		case PageflowPackage.PF_PAGE__SMALLICON:
+			setSmallicon(SMALLICON_EDEFAULT);
+			return;
+		case PageflowPackage.PF_PAGE__LARGEICON:
+			setLargeicon(LARGEICON_EDEFAULT);
+			return;
+		}
+		super.eUnset(eFeature);// eDynamicUnset(eFeature);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public boolean eIsSet(EStructuralFeature eFeature) {
+		switch (eDerivedStructuralFeatureID(eFeature)) {
+		case PageflowPackage.PF_PAGE__NAME:
+			return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT
+					.equals(name);
+		case PageflowPackage.PF_PAGE__COMMENT:
+			return COMMENT_EDEFAULT == null ? comment != null
+					: !COMMENT_EDEFAULT.equals(comment);
+		case PageflowPackage.PF_PAGE__X:
+			return x != X_EDEFAULT;
+		case PageflowPackage.PF_PAGE__Y:
+			return y != Y_EDEFAULT;
+		case PageflowPackage.PF_PAGE__WIDTH:
+			return width != WIDTH_EDEFAULT;
+		case PageflowPackage.PF_PAGE__HEIGHT:
+			return height != HEIGHT_EDEFAULT;
+		case PageflowPackage.PF_PAGE__ID:
+			return ID_EDEFAULT == null ? getId() != null : !ID_EDEFAULT
+					.equals(getId());
+		case PageflowPackage.PF_PAGE__PAGEFLOW:
+			return getPageflow() != null;
+		case PageflowPackage.PF_PAGE__OUTLINKS:
+			return outlinks != null && !outlinks.isEmpty();
+		case PageflowPackage.PF_PAGE__INLINKS:
+			return inlinks != null && !inlinks.isEmpty();
+		case PageflowPackage.PF_PAGE__PATH:
+			return PATH_EDEFAULT == null ? getPath() != null : !PATH_EDEFAULT
+					.equals(getPath());
+		case PageflowPackage.PF_PAGE__SMALLICON:
+			return SMALLICON_EDEFAULT == null ? getSmallicon() != null
+					: !SMALLICON_EDEFAULT.equals(getSmallicon());
+		case PageflowPackage.PF_PAGE__LARGEICON:
+			return LARGEICON_EDEFAULT == null ? getLargeicon() != null
+					: !LARGEICON_EDEFAULT.equals(getLargeicon());
+		}
+		return super.eIsSet(eFeature);// eDynamicIsSet(eFeature);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (path: ");
+		result.append(getPath());
+		result.append(", smallicon: ");
+		result.append(getSmallicon());
+		result.append(", largeicon: ");
+		result.append(getLargeicon());
+		result.append(')');
+		return result.toString();
+	}
+
+}
+// PFPageImpl
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/synchronization/FC2PFSynchronizer.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/synchronization/FC2PFSynchronizer.java
new file mode 100644
index 0000000..8c97c01
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/synchronization/FC2PFSynchronizer.java
@@ -0,0 +1,95 @@
+/**
+ * Confidential Property of Sybase, Inc. 
+ * (c) Copyright Sybase, Inc. 2004-2006. 
+ * All rights reserved.
+ */
+package org.eclipse.jst.jsf.facesconfig.ui.pageflow.synchronization;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jst.jsf.facesconfig.emf.FacesConfigType;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.Pageflow;
+
+/**
+ * The synchronizer which is used to synchronize modification in source view
+ * with pageflow view.
+ * 
+ * @author hmeng
+ * 
+ */
+public class FC2PFSynchronizer implements Adapter {
+
+	Pageflow pageflow;
+
+	FacesConfigType facesConfig;
+
+	public FC2PFSynchronizer(Pageflow pf, FacesConfigType fc) {
+		this.pageflow = pf;
+		this.facesConfig = fc;
+	}
+
+	public Notifier getTarget() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public boolean isAdapterForType(Object type) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	public void notifyChanged(Notification notification) {
+		if (!(notification.getNotifier() instanceof EObject)) {
+			return;
+		}
+		int type = notification.getEventType();
+		switch (type) {
+		case Notification.ADD: {
+			// PageflowTransform.getInstance().updatePageflowModelFromEMF(
+			// pageflow, facesConfig);
+			break;
+		}
+			// int featureId = notification.getFeatureID(PageflowPackage.class);
+			//
+			// EObject target = (EObject) this.getTarget();
+			// if (target instanceof NavigationCaseType) {
+			// PFLink link = (PFLink) FC2PFTransformer.getInstance()
+			// .getCases2LinksMap().get(target);
+			// } else if (target.eContainer() instanceof NavigationCaseType) {
+			// PFLink link = (PFLink) FC2PFTransformer.getInstance()
+			// .getCases2LinksMap().get(target.eContainer());
+			// if (link != null) {
+			// if (target instanceof DescriptionType) {
+			// link.setComment(((DescriptionType) target)
+			// .getTextContent());
+			// } else if (target instanceof DisplayNameType) {
+			// link.setName(((DisplayNameType) target)
+			// .getTextContent());
+			// PageflowLayoutManager.getInstance().layoutPageflow(
+			// link.getPageflow());
+			// }
+			// }
+			// }
+			// }
+		case Notification.SET:
+			if (notification.getNewValue() != null) {
+			}
+
+			break;
+		case Notification.REMOVE:
+			break;
+		}
+	}
+
+	public void dispose() {
+
+	}
+
+	public void setTarget(Notifier newTarget) {
+		// TODO Auto-generated method stub
+
+	}
+
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/synchronization/FC2PFTransformer.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/synchronization/FC2PFTransformer.java
index 2f755de..2d4b15f 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/synchronization/FC2PFTransformer.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/synchronization/FC2PFTransformer.java
@@ -415,6 +415,8 @@
 				break;
 			}
 			}
+			refreshPFAdapter(pageflow);
+			refreshFCAdapter(facesConfig);
 			isInEvent = false;
 		}
 
@@ -422,8 +424,6 @@
 			pageflow.notifyModelChanged(new ENotificationImpl(
 					(InternalEObject) notification.getNotifier(),
 					Notification.SET, PageflowPackage.PAGEFLOW, null, null));
-			refreshPFAdapter(pageflow);
-			refreshFCAdapter(facesConfig);
 		}
 
 		public void dispose() {
@@ -502,6 +502,8 @@
 					break;
 				}
 			}
+			refreshFCAdapter((EObject) notification.getNotifier());
+			refreshPFAdapter(pageflow);
 
 			isInEvent = false;
 		}
@@ -509,8 +511,6 @@
 		private void updateAndNotify(Notification notification) {
 			Assert
 					.isTrue(notification.getNotifier() instanceof InternalEObject);
-			refreshFCAdapter((EObject) notification.getNotifier());
-			refreshPFAdapter(pageflow);
 			pageflow.notifyModelChanged(new ENotificationImpl(
 					(InternalEObject) notification.getNotifier(),
 					Notification.SET, PageflowPackage.PAGEFLOW, null, null));
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/synchronization/PF2FCSynchronizer.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/synchronization/PF2FCSynchronizer.java
new file mode 100644
index 0000000..e694f81
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/synchronization/PF2FCSynchronizer.java
@@ -0,0 +1,960 @@
+/**
+ * Confidential Property of Sybase, Inc. 
+ * (c) Copyright Sybase, Inc. 2004-2006. 
+ * All rights reserved.
+ */
+package org.eclipse.jst.jsf.facesconfig.ui.pageflow.synchronization;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.jst.jsf.facesconfig.emf.DescriptionType;
+import org.eclipse.jst.jsf.facesconfig.emf.DisplayNameType;
+import org.eclipse.jst.jsf.facesconfig.emf.FacesConfigFactory;
+import org.eclipse.jst.jsf.facesconfig.emf.FacesConfigType;
+import org.eclipse.jst.jsf.facesconfig.emf.FromOutcomeType;
+import org.eclipse.jst.jsf.facesconfig.emf.FromViewIdType;
+import org.eclipse.jst.jsf.facesconfig.emf.IconType;
+import org.eclipse.jst.jsf.facesconfig.emf.LargeIconType;
+import org.eclipse.jst.jsf.facesconfig.emf.NavigationCaseType;
+import org.eclipse.jst.jsf.facesconfig.emf.NavigationRuleType;
+import org.eclipse.jst.jsf.facesconfig.emf.RedirectType;
+import org.eclipse.jst.jsf.facesconfig.emf.SmallIconType;
+import org.eclipse.jst.jsf.facesconfig.emf.ToViewIdType;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFPage;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.Pageflow;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowElement;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowNode;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPackage;
+
+/**
+ * The class to synchronize modification in pageflow for faces config.
+ * 
+ * @author hmeng
+ * 
+ */
+public class PF2FCSynchronizer implements Adapter {
+
+	Pageflow pageflow;
+
+	FacesConfigType facesConfig;
+
+	public PF2FCSynchronizer(Pageflow pf, FacesConfigType fc) {
+		this.pageflow = pf;
+		this.facesConfig = fc;
+	}
+
+	public Notifier getTarget() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public boolean isAdapterForType(Object type) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	private void addPage(Notification notification, PageflowElement element) {
+		// ((EObject) notification.getNewValue()).eAdapters().add(this);
+	}
+
+	private String getFromViewID(NavigationRuleType rule) {
+		String result = "*";
+		if (rule.getFromViewId() != null) {
+			result = rule.getFromViewId().getTextContent();
+		}
+		return result;
+	}
+
+	private String getToViewID(NavigationCaseType navCase) {
+		String result = "*";
+		if (navCase.getToViewId() != null) {
+			result = navCase.getToViewId().getTextContent();
+		}
+		return result;
+	}
+
+	/**
+	 * All the fromViewID or toViewID
+	 * 
+	 * @param path
+	 * @return
+	 */
+	public List findFacesPages(String path) {
+		List rules = facesConfig.getNavigationRule();
+		List result = new ArrayList();
+		for (int i = 0; i < rules.size(); i++) {
+			NavigationRuleType rule = (NavigationRuleType) rules.get(i);
+			String fromViewID = getFromViewID(rule);
+			if (fromViewID.equals(path)) {
+				result.add(rule.getFromViewId());
+			}
+			List cases = rule.getNavigationCase();
+			for (int j = 0; j < cases.size(); j++) {
+				NavigationCaseType navCase = (NavigationCaseType) cases.get(j);
+				String toViewID = getToViewID(navCase);
+				if (toViewID.equals(path)) {
+					result.add(navCase.getToViewId());
+				}
+			}
+		}
+		return result;
+	}
+
+	/**
+	 * Find navigation rule with fromViewID.
+	 * 
+	 * @param fromID
+	 * @return
+	 */
+	// private List findFacesRules(String fromID) {
+	// List rules = facesConfig.getNavigationRule();
+	// List result = new ArrayList();
+	// for (int i = 0; i < rules.size(); i++) {
+	// NavigationRuleType rule = (NavigationRuleType) rules.get(i);
+	// String fromViewID = "*";
+	// if (rule.getFromViewId() != null) {
+	// fromViewID = rule.getFromViewId().getTextContent();
+	// }
+	// // FIXME: case sensitive?
+	// if (fromViewID.equalsIgnoreCase(fromID)) {
+	// result.add(rule);
+	// }
+	// }
+	// return result;
+	// }
+	// /**
+	// * Page to page case.
+	// *
+	// * @param rule
+	// * @param outCome
+	// * @param toViewID
+	// * @return
+	// */
+	// private List findFacesCase(NavigationRuleType rule, String outCome,
+	// String toViewID) {
+	// List cases = rule.getNavigationCase();
+	// List result = new ArrayList();
+	// for (int i = 0; i < cases.size(); i++) {
+	// NavigationCaseType navCase = (NavigationCaseType) cases.get(i);
+	// String fromOutcome = null;
+	// if (navCase.getFromOutcome() != null) {
+	// fromOutcome = navCase.getFromOutcome().getTextContent();
+	// }
+	// // FIXME: case sensitive? Don't consider other properties like icon,
+	// // description. etc.
+	// if (outCome == null && fromOutcome == null || outCome != null
+	// && fromOutcome != null
+	// && fromOutcome.equalsIgnoreCase(outCome)) {
+	// if (toViewID != null
+	// && navCase.getToViewId() != null
+	// && toViewID.equals(navCase.getToViewId()
+	// .getTextContent()))
+	// result.add(navCase);
+	// }
+	// }
+	// return result;
+	// }
+	/**
+	 * Page->action->page
+	 * 
+	 * @param rule
+	 * @param action
+	 * @param outCome
+	 * @param toViewID
+	 * @return
+	 */
+	// private List findFacesCase(NavigationRuleType rule, String action,
+	// String outCome, String toViewID) {
+	// List cases = rule.getNavigationCase();
+	// List result = new ArrayList();
+	// for (int i = 0; i < cases.size(); i++) {
+	// NavigationCaseType navCase = (NavigationCaseType) cases.get(i);
+	// String fromAction = null;
+	// if (navCase.getFromAction() != null) {
+	// fromAction = navCase.getFromAction().getTextContent();
+	// }
+	// String fromOutcome = null;
+	// if (navCase.getFromOutcome() != null) {
+	// fromOutcome = navCase.getFromOutcome().getTextContent();
+	// }
+	// // FIXME: case sensitive? Don't consider other properties like icon,
+	// // description. etc.
+	// if (outCome == null && fromOutcome == null || outCome != null
+	// && fromOutcome != null && fromOutcome.equals(outCome)) {
+	// if (toViewID != null
+	// && navCase.getToViewId() != null
+	// && toViewID.equals(navCase.getToViewId()
+	// .getTextContent()))
+	// if (fromAction != null && action != null
+	// && fromAction.equals(action)) {
+	// result.add(navCase);
+	// }
+	// }
+	// }
+	// return result;
+	// }
+	//
+	// private void createFacesCase(PFLink link, PFPage source, String
+	// actionStr,
+	// PFPage target) {
+	// NavigationRuleType rule = FacesConfigFactory.eINSTANCE
+	// .createNavigationRuleType();
+	// NavigationCaseType navCase = FacesConfigFactory.eINSTANCE
+	// .createNavigationCaseType();
+	// FromViewIdType from = FacesConfigFactory.eINSTANCE
+	// .createFromViewIdType();
+	// from.setTextContent(source.getPath());
+	// ToViewIdType toView = FacesConfigFactory.eINSTANCE.createToViewIdType();
+	// toView.setTextContent(target.getPath());
+	// FromActionType action = FacesConfigFactory.eINSTANCE
+	// .createFromActionType();
+	// action.setTextContent(actionStr);
+	// updateFacesCase(link, navCase);
+	// navCase.setFromAction(action);
+	// navCase.setToViewId(toView);
+	// rule.getNavigationCase().add(navCase);
+	// rule.setFromViewId(from);
+	// facesConfig.getNavigationRule().add(rule);
+	// updateFacesRule(rule, source);
+	// FC2PFTransformer.getInstance().getMapCases2Links().put(navCase, link);
+	// FC2PFTransformer.getInstance().getMapLinks2Cases().put(link, navCase);
+	// }
+	// private void updateFacesCase(PFLink ref, NavigationCaseType navCase) {
+	// if (ref != null) {
+	// if (ref.getOutcome() != null) {
+	// FromOutcomeType outcome = FacesConfigFactory.eINSTANCE
+	// .createFromOutcomeType();
+	// outcome.setTextContent(ref.getOutcome());
+	// navCase.setFromOutcome(outcome);
+	// }
+	// if (ref.getName() != null) {
+	// DisplayNameType display = FacesConfigFactory.eINSTANCE
+	// .createDisplayNameType();
+	// display.setTextContent(ref.getName());
+	// navCase.getDisplayName().add(display);
+	// }
+	// if (ref.getComment() != null) {
+	// DescriptionType description = FacesConfigFactory.eINSTANCE
+	// .createDescriptionType();
+	// description.setTextContent(ref.getComment());
+	// navCase.getDescription().add(description);
+	// }
+	// }
+	// }
+	private void updateFacesRule(NavigationRuleType navigationRule,
+			PFPage pageSource) {
+		FacesConfigFactory factory = FacesConfigFactory.eINSTANCE;
+		if (pageSource.getComment() != null) {
+			DescriptionType description = factory.createDescriptionType();
+			description.setTextContent(pageSource.getComment());
+			navigationRule.getDescription().clear();
+			navigationRule.getDescription().add(description);
+		}
+		// set the navigation rule's icon
+		if (pageSource.getLargeicon() != null
+				|| pageSource.getSmallicon() != null) {
+			IconType icon = factory.createIconType();
+			if (pageSource.getLargeicon() != null) {
+				LargeIconType largeicon = factory.createLargeIconType();
+				largeicon.setTextContent(pageSource.getLargeicon());
+				icon.setLargeIcon(largeicon);
+			}
+
+			if (pageSource.getSmallicon() != null) {
+				SmallIconType smallicon = factory.createSmallIconType();
+				smallicon.setTextContent(pageSource.getSmallicon());
+				icon.setSmallIcon(smallicon);
+			}
+			navigationRule.getIcon().clear();
+			navigationRule.getIcon().add(icon);
+		}
+	}
+
+	private void createFacesCase(PFLink link, PFPage source, PFPage target) {
+		NavigationRuleType rule = FacesConfigFactory.eINSTANCE
+				.createNavigationRuleType();
+		FromViewIdType from = FacesConfigFactory.eINSTANCE
+				.createFromViewIdType();
+		from.setTextContent((source).getPath());
+		rule.setFromViewId(from);
+		NavigationCaseType navCase = FacesConfigFactory.eINSTANCE
+				.createNavigationCaseType();
+		ToViewIdType toView = FacesConfigFactory.eINSTANCE.createToViewIdType();
+		toView.setTextContent((target).getPath());
+		navCase.setToViewId(toView);
+		// updateFacesCase(link, navCase);
+		link.getFCElements().add(navCase);
+		rule.getNavigationCase().add(navCase);
+		facesConfig.getNavigationRule().add(rule);
+		updateFacesRule(rule, source);
+		FC2PFTransformer.getInstance().getMapCases2Links().put(navCase, link);
+		FC2PFTransformer.getInstance().getMapLinks2Cases().put(link, navCase);
+	}
+
+	private void removePageToPageLink(PFPage start, PFLink link, PFPage target) {
+		if (FC2PFTransformer.getInstance().getMapLinks2Cases()
+				.containsKey(link)) {
+			link.eAdapters().remove(FC2PFTransformer.getInstance());
+			NavigationCaseType caseFC = (NavigationCaseType) FC2PFTransformer
+					.getInstance().getMapLinks2Cases().remove(link);
+			FC2PFTransformer.getInstance().getMapCases2Links().remove(caseFC);
+			removeCase(caseFC);
+		}
+	}
+
+	private void removeCase(NavigationCaseType navCase) {
+		NavigationRuleType rule = (NavigationRuleType) navCase.eContainer();
+		(rule).getNavigationCase().remove(navCase);
+		if (rule.getNavigationCase().size() == 0) {
+			facesConfig.getNavigationRule().remove(rule);
+		}
+	}
+
+	// private void removePageToActionLink(PFPage page, PFAction action) {
+	// if (action.getOutlinks().size() > 0 && page != null) {
+	// String pagePath = page.getPath();
+	// List list = findFacesRules(pagePath);
+	// for (int i = 0; i < list.size(); i++) {
+	// NavigationRuleType rule = (NavigationRuleType) list.get(i);
+	// List actionOutlinks = action.getOutlinks();
+	// for (int j = 0; j < actionOutlinks.size(); j++) {
+	// PFLink actionOutlink = (PFLink) actionOutlinks.get(j);
+	// String outcome = actionOutlink.getOutcome();
+	// List cases = findFacesCase(rule, action.getName(), outcome,
+	// ((PFPage) actionOutlink.getTarget()).getPath());
+	// removeCases(rule, cases);
+	// if (rule.getNavigationCase().size() == 0) {
+	// FacesConfigType facesConfig = (FacesConfigType) rule
+	// .eContainer();
+	// facesConfig.getNavigationRule().remove(rule);
+	// break;
+	// }
+	// }
+	// }
+	// }
+	// }
+
+	// private void removeActionToPageLink(PFAction element, PFPage page,
+	// PFLink value) {
+	// if (element != null && value != null && page != null) {
+	// if (hasDuplicatedLinks(element, page, value)) {
+	// return;
+	// }
+	// PFLink link = (PFLink) value;
+	// PageflowNode source = link.getSource();
+	// PageflowNode target = link.getTarget();
+	// link.setTarget(page);
+	// link.setSource(element);
+	// List cases = getCasesInCache(link);
+	// link.setTarget(source);
+	// link.setSource(target);
+	// for (int i = 0, n = cases.size(); i < n; i++) {
+	// removeCase((NavigationCaseType) cases.get(i));
+	// }
+	// // List inLinks = ((PFAction) element).getInlinks();
+	// // for (int i = 0; i < inLinks.size(); i++) {
+	// // PFLink inLink = (PFLink) inLinks.get(i);
+	// // PFPage start = (PFPage) inLink.getSource();
+	// // if (start instanceof PFPage) {
+	// // String path = ((PFPage) start).getPath();
+	// // List list = findFacesRules(path);
+	// // for (int j = 0; j < list.size(); j++) {
+	// // NavigationRuleType rule = (NavigationRuleType) list
+	// // .get(j);
+	// // String outcome = link.getOutcome();
+	// // String fromAction = ((PFAction) element).getAction();
+	// // List cases = findFacesCase(rule, fromAction, outcome,
+	// // page.getPath());
+	// // removeCases(rule, cases);
+	// // if (rule.getNavigationCase().size() == 0) {
+	// // FacesConfigType facesConfig = (FacesConfigType) rule
+	// // .eContainer();
+	// // facesConfig.getNavigationRule().remove(rule);
+	// // }
+	// // }
+	// // }
+	// // }
+	// }
+	// }
+
+	// private boolean hasDuplicatedLinks(PFPage start, PFPage end,
+	// PFLink link) {
+	// List links = start.getOutlinks();
+	// int c = 0;
+	// for (int i = 0, n = links.size(); i < n; i++) {
+	// PFLink theLink = ((PFLink) links.get(i));
+	// if (theLink.getTarget() == end) {
+	// if (theLink.getOutcome() == null && link.getOutcome() == null
+	// || theLink.getOutcome() != null
+	// && link.getOutcome() != null
+	// && theLink.getOutcome().equals(link.getOutcome())) {
+	// c++;
+	// break;
+	// }
+	// }
+	// }
+	// return c > 0;
+	// }
+
+	// private boolean hasDuplicatedLinks(PFLink link) {
+	// PageflowNode source = link.getSource();
+	// List links = source.getOutlinks();
+	// int c = 0;
+	// for (int i = 0, n = links.size(); i < n; i++) {
+	// PFLink theLink = ((PFLink) links.get(i));
+	// if (theLink.getOutcome() == null && link.getOutcome() == null
+	// || theLink.getOutcome() != null
+	// && link.getOutcome() != null
+	// && theLink.getOutcome().equals(link.getOutcome())) {
+	// c++;
+	// break;
+	// }
+	// }
+	// return c > 0;
+	// }
+
+	private void propertyChanged(Notification notification,
+			PageflowElement element) {
+		if (notification.getNewValue() != null) {
+			int value = notification.getFeatureID(PageflowPackage.class);
+			if (element instanceof PFPage) {
+				setPageProperties(notification, element, value);
+			} else if (element instanceof PFLink) {
+				// System.out.println("The link property is changed");
+				// setLinkProperties(notification, element, value);
+			}
+		}
+	}
+
+	// private void setActionProperties(Notification notification,
+	// PageflowElement element, int value) {
+	// String actionID = ((PFAction) element).getAction();
+	// if (value == PageflowPackage.PF_ACTION__ACTION) {
+	// actionID = notification.getOldStringValue();
+	// List cases = getCases((PFAction) element, actionID);
+	// for (int i = 0; i < cases.size(); i++) {
+	// // switch (value) {
+	// // case PageflowPackage.PF_ACTION__ACTION:
+	// FromActionType action = ((NavigationCaseType) cases.get(i))
+	// .getFromAction();
+	// if (action == null) {
+	// action = FacesConfigFactory.eINSTANCE
+	// .createFromActionType();
+	// action.setTextContent(notification.getNewStringValue());
+	// ((NavigationCaseType) cases.get(i)).setFromAction(action);
+	// } else {
+	// action.setTextContent(notification.getNewStringValue());
+	// }
+	// }
+	// }
+	// }
+
+	private List getCasesInCache(PFLink link) {
+		List result = new ArrayList();
+		Iterator iterator = FC2PFTransformer.getInstance().getMapLinks2Cases()
+				.keySet().iterator();
+		while (iterator.hasNext()) {
+			PFLink theLink = (PFLink) iterator.next();
+			if (theLink.equals(link)) {
+				result.add(FC2PFTransformer.getInstance().getMapLinks2Cases()
+						.get(theLink));
+			}
+		}
+		return result;
+	}
+
+	private void setLinkProperties(Notification notification,
+			PageflowElement element, int value) {
+		// String outcome = ((PFLink) element).getOutcome();
+		// if (value == PageflowPackage.PF_LINK__OUTCOME) {
+		// outcome = notification.getOldStringValue();
+		// }
+		List cases = getCasesInCache((PFLink) element);
+		// NavigationCaseType caseFC = null;
+		// if (FC2PFTransformer.getInstance().getMapLinks2Cases().get(element)
+		// != null) {
+		// caseFC = (NavigationCaseType) FC2PFTransformer.getInstance()
+		// .getMapLinks2Cases().get(element);
+		// }
+		// if (cases.size()>0 != null) {
+		// List cases = getCases((PFLink) element, outcome);
+		for (int i = 0; i < cases.size(); i++) {
+			NavigationCaseType caseFC = (NavigationCaseType) cases.get(i);
+			switch (value) {
+			case PageflowPackage.PF_LINK__REDIRECT:
+				if (notification.getNewBooleanValue()) {
+					RedirectType redirect = FacesConfigFactory.eINSTANCE
+							.createRedirectType();
+					caseFC.setRedirect(redirect);
+				} else {
+					if (caseFC != null) {
+						caseFC.setRedirect(null);
+					}
+				}
+				break;
+			case PageflowPackage.PF_LINK__COMMENT:
+				caseFC.getDescription().clear();
+				caseFC.getDescription().add(notification.getNewStringValue());
+				break;
+			case PageflowPackage.PF_LINK__NAME:
+				caseFC.getDisplayName().clear();
+				caseFC.getDisplayName().add(notification.getNewStringValue());
+				break;
+			case PageflowPackage.PF_LINK__OUTCOME:
+				FromOutcomeType caseOutcome = caseFC.getFromOutcome();
+				if (caseOutcome != null) {
+					caseOutcome
+							.setTextContent(notification.getNewStringValue());
+				} else {
+					FromOutcomeType newoutcome = FacesConfigFactory.eINSTANCE
+							.createFromOutcomeType();
+					newoutcome.setTextContent(notification.getNewStringValue());
+					caseFC.setFromOutcome(newoutcome);
+				}
+				break;
+
+			case PageflowPackage.PF_LINK__FROMACTION:
+				// FromActionType fromAction = caseFC.getFromAction();
+				// if (fromAction != null) {
+				// if (notification.getNewStringValue() != null
+				// && notification.getNewStringValue().trim().length() != 0) {
+				// fromAction.setTextContent(notification
+				// .getNewStringValue());
+				// } else {
+				// caseFC.setFromAction(null);
+				// }
+				// } else if (notification.getNewStringValue() != null
+				// && notification.getNewStringValue().trim().length() != 0) {
+				// FromActionType fromaction = FacesConfigFactory.eINSTANCE
+				// .createFromActionType();
+				// fromaction.setTextContent(notification.getNewStringValue());
+				// caseFC.setFromAction(fromaction);
+				// }
+				break;
+			}
+		}
+	}
+
+	// private List getCases(PFAction action, String actionStr) {
+	// List result = new ArrayList();
+	// List InLinks = action.getInlinks();
+	// List outLinks = action.getOutlinks();
+	// for (int i = 0, n = InLinks.size(); i < n; i++) {
+	// PageflowNode start = ((PFLink) InLinks.get(i)).getSource();
+	// List rules = findFacesRules(((PFPage) start).getPath());
+	// for (int j = 0, nn = rules.size(); j < nn; j++) {
+	// for (int jj = 0, nnn = outLinks.size(); jj < nnn; jj++) {
+	// PFLink link = (PFLink) outLinks.get(jj);
+	// String outcome = link.getOutcome();
+	// String toID = ((PFPage) (link.getTarget())).getPath();
+	// List cases = findFacesCase((NavigationRuleType) rules
+	// .get(j), actionStr, outcome, toID);
+	// result.addAll(cases);
+	// }
+	// }
+	// }
+	// return result;
+	// }
+
+	// private List getCases(PFLink link, String outcome) {
+	// List result = new ArrayList();
+	// if (link != null && link.getTarget() instanceof PFPage) {
+	// if (link.getSource() instanceof PFAction) {
+	// // Page source:
+	// List links = ((PFAction) link.getSource()).getInlinks();
+	// for (int i = 0; i < links.size(); i++) {
+	// PageflowNode source = ((PFLink) links.get(i)).getSource();
+	// List rules = findFacesRules(((PFPage) source).getPath());
+	// for (int j = 0; j < rules.size(); j++) {
+	// NavigationRuleType rule = (NavigationRuleType) rules
+	// .get(j);
+	// // Compare cases:
+	// List cases = rule.getNavigationCase();
+	// for (int k = 0; k < cases.size(); k++) {
+	// NavigationCaseType navCase = (NavigationCaseType) cases
+	// .get(k);
+	// String action = ((PFAction) link.getSource())
+	// .getAction();
+	// String targetPath = ((PFPage) link.getTarget())
+	// .getPath();
+	// if (navCase.getFromAction() != null
+	// && action.equals(navCase.getFromAction()
+	// .getTextContent())
+	// && navCase.getToViewId() != null
+	// && navCase.getToViewId().getTextContent()
+	// .equals(targetPath)) {
+	// FromOutcomeType fromOutCome = navCase
+	// .getFromOutcome();
+	// if ((fromOutCome == null && outcome == null)
+	// || (fromOutCome != null
+	// && outcome != null && fromOutCome
+	// .getTextContent().equals(
+	// outcome)))
+	// result.add(navCase);
+	// }
+	// }
+	// }
+	// }
+	// } else if (link.getSource() instanceof PFPage) {
+	// List rules = findFacesRules(((PFPage) link.getSource())
+	// .getPath());
+	// for (int j = 0; j < rules.size(); j++) {
+	// NavigationRuleType rule = (NavigationRuleType) rules.get(j);
+	// List cases = rule.getNavigationCase();
+	// for (int k = 0; k < cases.size(); k++) {
+	// NavigationCaseType navCase = (NavigationCaseType) cases
+	// .get(k);
+	// PFPage target = (PFPage) link.getTarget();
+	// // FIXME: Can getToViewId() return null?
+	// if (target.getPath().equals(
+	// navCase.getToViewId().getTextContent())) {
+	// FromOutcomeType fromOutCome = navCase
+	// .getFromOutcome();
+	// if ((fromOutCome == null && outcome == null)
+	// || (fromOutCome != null && outcome != null && fromOutCome
+	// .getTextContent().equals(outcome)))
+	// result.add(navCase);
+	// }
+	// }
+	// }
+	// }
+	// }
+	// return result;
+	// }
+
+	private void setPageProperties(Notification notification,
+			PageflowElement element, int value) {
+		String path = ((PFPage) element).getPath();
+		List list = findFacesPages(path);
+		for (int i = 0; i < list.size(); i++) {
+			if (list.get(i) instanceof FromViewIdType) {
+				FromViewIdType fromViewID = ((FromViewIdType) list.get(i));
+				NavigationRuleType rule = (NavigationRuleType) fromViewID
+						.eContainer();
+				switch (value) {
+				case PageflowPackage.PF_PAGE__NAME:
+					rule.getDisplayName().clear();
+					DisplayNameType displayname = FacesConfigFactory.eINSTANCE
+							.createDisplayNameType();
+					displayname.setTextContent((String) notification
+							.getNewValue());
+					rule.getDisplayName().add(displayname);
+					break;
+				case PageflowPackage.PF_PAGE__COMMENT:
+					rule.getDescription().clear();
+					DescriptionType description = FacesConfigFactory.eINSTANCE
+							.createDescriptionType();
+					description.setTextContent((String) notification
+							.getNewValue());
+					rule.getDescription().add(description);
+					break;
+				case PageflowPackage.PF_PAGE__LARGEICON: {
+					List icons = rule.getIcon();
+					boolean did = false;
+					for (int index = 0; index < icons.size(); index++) {
+						IconType icon = (IconType) icons.get(index);
+						if (icon.getLargeIcon() != null) {
+							icon.getLargeIcon().setTextContent(
+									(String) notification.getNewValue());
+							did = true;
+						}
+					}
+					if (!did) {
+						IconType icon = FacesConfigFactory.eINSTANCE
+								.createIconType();
+						LargeIconType largeIconType = FacesConfigFactory.eINSTANCE
+								.createLargeIconType();
+						largeIconType.setTextContent((String) notification
+								.getNewValue());
+						icon.setLargeIcon(largeIconType);
+						icons.add(icon);
+					}
+					break;
+				}
+				case PageflowPackage.PF_PAGE__SMALLICON: {
+					List icons = rule.getIcon();
+					boolean did = false;
+					for (int index = 0; index < icons.size(); index++) {
+						IconType icon = (IconType) icons.get(index);
+						if (icon.getSmallIcon() != null) {
+							icon.getSmallIcon().setTextContent(
+									(String) notification.getNewValue());
+							did = true;
+						}
+					}
+					if (!did) {
+						IconType icon = FacesConfigFactory.eINSTANCE
+								.createIconType();
+						SmallIconType smallIconType = FacesConfigFactory.eINSTANCE
+								.createSmallIconType();
+						smallIconType.setTextContent((String) notification
+								.getNewValue());
+						icon.setSmallIcon(smallIconType);
+						icons.add(icon);
+					}
+					break;
+				}
+				}
+			}
+		}
+	}
+
+	private void addPageToPageLink(PFPage source, PFPage target, PFLink value) {
+		if (source != null && target != null && value != null) {
+			if (!((PFLink) value).eAdapters().contains(
+					FC2PFTransformer.getInstance())) {
+				((PFLink) value).eAdapters()
+						.add(FC2PFTransformer.getInstance());
+			}
+			// List list = ((PageflowNode) source).getOutlinks();
+			// for (int i = 0; i < list.size(); i++) {
+			// PFLink link = (PFLink) list.get(i);
+			// if (link == value) {
+			// continue;
+			// }
+			// if (link.getTarget() instanceof PFPage) {
+			// PFPage page = (PFPage) link.getTarget();
+			// // there is an existing link.
+			// if (page.getPath().equals(((PFPage) target).getPath())) {
+			// return;
+			// }
+			// }
+			// }
+			createFacesCase(value, (PFPage) source, (PFPage) target);
+		}
+	}
+
+	// private void addPageToActionLink(PFPage source, PFAction target,
+	// Object value) {
+	// if (source != null && target != null && value != null) {
+	// List list = ((PageflowNode) source).getOutlinks();
+	// for (int i = 0; i < list.size(); i++) {
+	// // there is an existing link.
+	// PFLink link = (PFLink) list.get(i);
+	// if (link == value) {
+	// continue;
+	// }
+	// if (link.getTarget() instanceof PFPage) {
+	// PFPage page = (PFPage) link.getTarget();
+	// if (page.getPath().equals(((PFPage) target).getPath())) {
+	// return;
+	// }
+	// }
+	// }
+	// // find next link.
+	// if (target.getOutlinks().size() > 0) {
+	// list = ((PageflowNode) target).getOutlinks();
+	// for (int i = 0; i < list.size(); i++) {
+	// PFLink secondLink = (PFLink) list.get(i);
+	// if (secondLink.getTarget() instanceof PFPage) {
+	// PFPage page = (PFPage) secondLink.getTarget();
+	// PFPage target1 = page;
+	// createFacesCase((PFLink) value, secondLink, source,
+	// target, target1);
+	// }
+	// }
+	// }
+	// }
+	// }
+	//
+	// private void addActionToPageLink(PFAction action, PFPage target,
+	// PFLink value) {
+	// if (action != null && target != null && value != null) {
+	// // List list = ((PageflowNode) action).getOutlinks();
+	// // for (int i = 0; i < list.size(); i++) {
+	// // // there is an existing link.
+	// // PFLink link = (PFLink) list.get(i);
+	// // if (link == value) {
+	// // continue;
+	// // }
+	// // if (link.getTarget() instanceof PFPage) {
+	// // PFPage page = (PFPage) link.getTarget();
+	// // if (page.getPath().equals(((PFPage) target).getPath())) {
+	// // return;
+	// // }
+	// // }
+	// // }
+	// List list;
+	// // find previous link.
+	// if (action.getInlinks().size() > 0) {
+	// list = ((PageflowNode) action).getInlinks();
+	// for (int i = 0; i < list.size(); i++) {
+	// // there is an existing link.
+	// PFLink link = (PFLink) list.get(i);
+	// if (link.getSource() instanceof PFPage) {
+	// createFacesCase(link, value, (PFPage) link.getSource(),
+	// action, target);
+	// }
+	// }
+	// }
+	// }
+	// }
+
+	// private void addedNewElement(Object value) {
+	// // Object value = notification.getNewValue();
+	// if (value instanceof PFLink) {
+	// PageflowNode source = ((PFLink) value).getSource();
+	// PageflowNode target = ((PFLink) value).getTarget();
+	// // page -> page
+	// if (source instanceof PFPage) {
+	// if (target instanceof PFPage) {
+	// }
+	// }
+	// // // page->action->page.
+	// // else if (source instanceof PFAction) {
+	// // if (target instanceof PFPage) {
+	// // }
+	// // }
+	// }
+	// }
+
+	private void addInLink(Notification notification, PageflowElement element) {
+		Object value = notification.getNewValue();
+		PFLink link = (PFLink) value;
+		// for outLink remove, only source is referenced.
+		// if (element instanceof PFAction) {
+		// addPageToActionLink((PFPage) link.getSource(), (PFAction) element,
+		// link);
+		// } else
+		if (element instanceof PFPage) {
+			PageflowNode source = link.getSource();
+			if (source instanceof PFPage) {
+				addPageToPageLink((PFPage) source, (PFPage) element, link);
+			}
+
+			// else if (source instanceof PFAction) {
+			// addActionToPageLink((PFAction) source, (PFPage) element, link);
+			// }
+		}
+
+	}
+
+	private void addOutLink(Notification notification, PageflowElement element) {
+		Object value = notification.getNewValue();
+		// for outLink remove, only target is referenced.
+		PFLink link = (PFLink) value;
+		if (element instanceof PFPage) {
+			PageflowNode target = link.getTarget();
+			// page->page
+			if (target instanceof PFPage) {
+				addPageToPageLink((PFPage) element, (PFPage) target, link);
+			}
+			// else if (target instanceof PFAction)
+			// addPageToActionLink((PFPage) element, (PFAction) target, link);
+			// } else if (element instanceof PFAction)
+			// addActionToPageLink((PFAction) element, (PFPage)
+			// link.getTarget(),
+			// link);
+		}
+	}
+
+	private void removePage(Notification notification, PageflowElement element) {
+
+	}
+
+	private void removeInLink(Notification notification, PageflowElement element) {
+		Object value = notification.getOldValue();
+		PFLink link = (PFLink) value;
+		// for outLink remove, only source is referenced.
+		// if (element instanceof PFAction) {
+		// removePageToActionLink((PFPage) link.getSource(),
+		// (PFAction) element);
+		// } else
+		if (element instanceof PFPage) {
+			PageflowNode source = link.getSource();
+			if (source instanceof PFPage) {
+				removePageToPageLink((PFPage) source, link, (PFPage) element);
+			}
+			// else if (source instanceof PFAction) {
+			// removeActionToPageLink((PFAction) source, (PFPage) element,
+			// link);
+			// }
+		}
+	}
+
+	private void removeOutLink(Notification notification,
+			PageflowElement element) {
+		// the link that is removed.
+		Object value = notification.getOldValue();
+		PFLink link = (PFLink) value;
+		// for outLink remove, only target is referenced.
+		if (element instanceof PFPage) {
+			PageflowNode target = link.getTarget();
+			// page->page
+			if (target instanceof PFPage) {
+				removePageToPageLink((PFPage) element, link, (PFPage) target);
+			}
+			// else if (target instanceof PFAction)
+			// removePageToActionLink((PFPage) element, (PFAction) target);
+			// } else if (element instanceof PFAction)
+			// removeActionToPageLink((PFAction) element, (PFPage) link
+			// .getTarget(), link);
+		}
+	}
+
+	public void notifyChanged(Notification notification) {
+		PageflowElement element;
+		if (!(notification.getNotifier() instanceof PageflowElement)) {
+			return;
+		}
+		element = (PageflowElement) notification.getNotifier();
+		int type = notification.getEventType();
+		switch (type) {
+		case Notification.ADD: {
+			int featureId = notification.getFeatureID(PageflowPackage.class);
+			switch (featureId) {
+			case PageflowPackage.PAGEFLOW__NODES:
+				addPage(notification, element);
+				break;
+			case PageflowPackage.PAGEFLOW_NODE__OUTLINKS:
+				addOutLink(notification, element);
+				break;
+			case PageflowPackage.PAGEFLOW_NODE__INLINKS:
+				addInLink(notification, element);
+				break;
+			case PageflowPackage.PAGEFLOW:
+				break;
+			}
+			break;
+		}
+		case Notification.SET:
+			if (notification.getNewValue() != null) {
+				propertyChanged(notification, element);
+			}
+			break;
+		case Notification.REMOVE: {
+			int featureId = notification.getFeatureID(PageflowPackage.class);
+			switch (featureId) {
+			case PageflowPackage.PF_PAGE:
+				removePage(notification, element);
+				break;
+			case PageflowPackage.PAGEFLOW_NODE__OUTLINKS:
+				removeOutLink(notification, element);
+				break;
+			case PageflowPackage.PAGEFLOW_NODE__INLINKS:
+				removeInLink(notification, element);
+				break;
+			case PageflowPackage.PAGEFLOW:
+				break;
+			}
+			break;
+		}
+		}
+	}
+
+	public void dispose() {
+
+	}
+
+	public void setTarget(Notifier newTarget) {
+		// TODO Auto-generated method stub
+
+	}
+
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/ConfigurationManager.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/ConfigurationManager.java
new file mode 100644
index 0000000..a38c0f6
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/ConfigurationManager.java
@@ -0,0 +1,229 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2005 Sybase, Inc. 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:
+ *     Sybase, Inc. - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.jsf.facesconfig.ui.pageflow.util;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+
+/**
+ * Manages the files that comprise the Java Server Faces Configuration
+ * 
+ * @author Jane Cantz, Xiao-guang Zhang
+ * @version 1.0
+ */
+public class ConfigurationManager {
+
+	/** The current project reference */
+	private IProject currentProject = null;
+
+	/** Create the logger for this class */
+	// private static final Logger log = EditorPlugin
+	// .getLogger(ConfigurationManager.class);
+	/** List of all the Faces Configuration Types */
+	private List configs = null;
+
+	/** An array of the managed beans List from the configuration set */
+	private List[] managedBeans = null;
+
+	// private IFacesConfigManager facesConfigManagerAdapter;
+
+	/**
+	 * Manages the Faces Configuration set, which could be a single
+	 * <i>faces-config.xml</i> file or a set of config files defined in
+	 * <i>web.xml</i>.
+	 * 
+	 * @param project -
+	 *            the current project
+	 */
+	public ConfigurationManager(IProject project) {
+		super();
+		// log.setResourceBundle(EditorPlugin.getDefault().getResourceBundle());
+		currentProject = project;
+	}
+
+	/**
+	 * get the current project
+	 * 
+	 * @return
+	 */
+	public IProject getProject() {
+		return currentProject;
+	}
+
+	/**
+	 * @return List[] - a derived list of managed beans from the configuration
+	 *         set. The list is derived from reading the configuration files and
+	 *         extracting the bean references. Every element of the retruned
+	 *         list is a list, which contains
+	 *         <code>org.eclipse.jst.jsf.facesconfig.ui.model.xml.ManagedBean</code>.
+	 */
+//	public List[] deriveManagedBeans() {
+//		if (configs == null || configs.size() == 0) {
+//			return null;
+//		}
+//		managedBeans = new ArrayList[configs.size()];
+//
+//		// Loop thru all the configuration types
+//		for (int x = 0; x < configs.size(); x++) {
+//			IFile aConfigFile = (IFile) configs.get(x);
+//
+//			// List beans = ((FacesConfigType) configs.get(x)).getManagedBean();
+//
+//			managedBeans[x] = getManagedBeanListFromFile(aConfigFile);
+//		}
+//		return managedBeans;
+//	}
+
+	// private List getManagedBeanListFromFile(IFile facesConfigFile) {
+	//
+	// if (facesConfigFile == null || !facesConfigFile.exists()) {
+	// return null;
+	// }
+	// List managedBeanList = new ArrayList(0);
+	// IStructuredModel sModel = StructuredModelManager.getModelManager()
+	// .getExistingModelForRead(facesConfigFile);
+	// if (sModel != null) {
+	// IDOMDocument document = ((IDOMModel) sModel).getDocument();
+	// FacesConfigDocumentWrap facesConfigWrap = new FacesConfigDocumentWrap(
+	// document);
+	// if (facesConfigWrap.getFacesConfig() != null) {
+	// managedBeanList = facesConfigWrap.getFacesConfig()
+	// .getManagedBeanList();
+	// }
+	// sModel.releaseFromRead();
+	// }
+	// return managedBeanList;
+	// }
+
+	/**
+	 * @return String[] - An array of the configuration files
+	 */
+	// public Object[] getConfigs() {
+	// return configs.toArray();
+	// }
+	/**
+	 * @return List[] - a derived list of managed beans from the configuration
+	 *         set. The list is derived from reading the configuration files and
+	 *         extracting the bean references. Every element of the retruned
+	 *         list is a list, which contains
+	 *         <code>org.eclipse.jst.jsf.facesconfig.ui.model.xml.ManagedBean</code>.
+//	 */
+//	public List[] getManagedBeans() {
+//		deriveManagedBeans();
+//		return managedBeans;
+//	}
+
+	/**
+	 * Determine what files comprise the Java Server Faces configuration
+	 * 
+	 * @param project -
+	 *            the project to look for configuration files in
+	 */
+	public void loadConfiguration(IProject project) {
+		currentProject = project;
+
+		if (currentProject == null) {
+			return;
+		}
+
+		IFacesConfigManager facesConfigManager = getFacesConfigurationManager(project);
+
+		if (facesConfigManager == null) {
+			return;
+		}
+
+		IFile[] facesConfigFiles = facesConfigManager.getFacesConfigs();
+
+		if (facesConfigFiles != null && facesConfigFiles.length > 0) {
+			configs = new ArrayList();
+			for (int i = 0; i < facesConfigFiles.length; i++) {
+				configs.add(facesConfigFiles[i]);
+			}
+		}
+	}
+
+	private IFacesConfigManager getFacesConfigurationManager(IProject project) {
+		// facesConfigManagerAdapter = (IFacesConfigManager) Platform
+		// .getAdapterManager().getAdapter(project,
+		// IFacesConfigManager.class);
+		//
+		// return facesConfigManagerAdapter;
+		FacesConfigManager configManager = new FacesConfigManager(project);
+		configManager.loadConfiguration();
+		return configManager;
+	}
+
+	/**
+	 * Loads a single configuration file
+	 * 
+	 * @param config -
+	 *            the faces configuration file to load. Just the file name only.
+	 */
+	// public void loadConfiguration(String config) {
+	// if (currentProject == null) {
+	// return;
+	// }
+	//
+	// IFacesConfigManager facesConfigManager =
+	// getFacesConfigurationManager(currentProject);
+	//
+	// if (facesConfigManager == null) {
+	// return;
+	// }
+	//
+	// FacesConfigType[] facesConfigs = facesConfigManager.getFacesConfigs();
+	//
+	// if (facesConfigs != null) {
+	// IFile file = currentProject
+	// .getFile(IFileFolderConstants.PATH_SEPARATOR
+	// + WEBINF_FOLDER
+	// + IFileFolderConstants.PATH_SEPARATOR + config);
+	//
+	// for (int i = 0; i < facesConfigs.length; i++) {
+	// if (URIHelper.getPlatformURI(file).equalsIgnoreCase(
+	// facesConfigs[i].eResource().getURI().toString())) {
+	// configs = new ArrayList();
+	// configs.add(facesConfigs[i]);
+	// break;
+	// }
+	// }
+	// }
+	// }
+	/**
+	 * Saves all the configuration resources to the local file system
+	 */
+	// public void save() {
+	// IFacesConfigManager facesConfigManager =
+	// getFacesConfigurationManager(currentProject);
+	//
+	// if (facesConfigManager != null) {
+	// facesConfigManager.endModify();
+	// }
+	// }
+	/**
+	 * Update the managed bean type's scope value
+	 * 
+	 * @param mbt -
+	 *            the managed bean type
+	 * @param scopeValue -
+	 *            the scope value to set
+	 */
+	// public void updateBeanScope(ManagedBeanTypeImpl mbt, String scopeValue) {
+	// ManagedBeanScopeType mbst = mbt.getManagedBeanScope();
+	// mbst.setValue(scopeValue);
+	// Resource resource = mbt.eResource();
+	// resource.setModified(true);
+	// }
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/FC2PFTransformer.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/FC2PFTransformer.java
new file mode 100644
index 0000000..ec603a5
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/FC2PFTransformer.java
@@ -0,0 +1 @@
+package org.eclipse.jst.jsf.facesconfig.ui.pageflow.util;
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/FacesConfigManager.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/FacesConfigManager.java
new file mode 100644
index 0000000..9133efd
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/FacesConfigManager.java
@@ -0,0 +1,457 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2005 Sybase, Inc. 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:
+ *     Sybase, Inc. - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.jsf.facesconfig.ui.pageflow.util;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.StringTokenizer;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.jface.util.ListenerList;
+import org.eclipse.jst.j2ee.common.ParamValue;
+import org.eclipse.jst.j2ee.web.componentcore.util.WebArtifactEdit;
+import org.eclipse.jst.j2ee.webapplication.WebApp;
+import org.eclipse.jst.jsf.facesconfig.common.IFileFolderConstants;
+import org.eclipse.jst.jsf.facesconfig.ui.util.WebrootUtil;
+
+/**
+ * This class traces changes in the web.xml file, and then traces faces-config
+ * files declared in the web.xml file (or the default faces config file).
+ * Providing access method for all the faces-config files as a group.
+ * 
+ * @author Yang Liu
+ * @version
+ */
+// Part of this file is refactored from the old ConfigurationManager.
+public class FacesConfigManager implements IFacesConfigManager // , ILifecycle
+{
+	// private static final Logger _log =
+	// ModelsPlugin.getLogger(FacesConfigManager.class);
+
+	// private String WEBINF_FOLDER = IFileFolderConstants.FOLDER_WEBROOT
+	// + IFileFolderConstants.PATH_SEPARATOR
+	// + IFileFolderConstants.FOLDER_WEBINF;
+
+	private IProject currentProject;
+
+	/** The Adaptor Factory */
+	// protected ComposedAdapterFactory _adapterFactory;
+	ListenerList listenerList = new ListenerList(1);
+
+	// ------------------------------------------------------------------------
+	// _editingDomain need refresh each time re-read the configs.
+	/** The Faces Configuration Editing Domain */
+	// protected AdapterFactoryEditingDomain _editingDomain;
+	// ------------------------------------------------------------------------
+	// following are things need to re-read each refresh.
+	/** List of all the Faces Configuration Files */
+	// private List _configs = null;
+	//
+	// private FacesConfigType[] _facesConfigs = null;
+	private List facesConfigFileList;
+
+	// class ResourceTracker implements IResourceChangeListener,
+	// IResourceDeltaVisitor {
+	// boolean _configChanged;
+	//
+	// public void resourceChanged(IResourceChangeEvent event) {
+	// switch (event.getType()) {
+	// case IResourceChangeEvent.POST_CHANGE:
+	// try {
+	// _configChanged = false;
+	// event.getDelta().accept(this);
+	// } catch (CoreException exception) {
+	// _log.error("common.error", exception);
+	// } finally {
+	// if (_configChanged) {
+	// refresh();
+	// }
+	// }
+	// break;
+	// }
+	// }
+	//
+	// public boolean visit(IResourceDelta delta) {
+	// if (_configChanged) {
+	// return false; // we only need to set the flag, if it is
+	// // already set, then no need to process
+	// }
+	// IResource res = delta.getResource();
+	// if (res instanceof IProject && res != currentProject) {
+	// return false;
+	// }
+	//
+	// if (res instanceof IProject && res == currentProject) {
+	// if (delta.getKind() == IResourceDelta.REMOVED) {
+	// return false;
+	// } else if (delta.getKind() == IResourceDelta.CHANGED) {
+	// if ((delta.getFlags() & IResourceDelta.OPEN) != 0) {
+	// if (currentProject.isOpen()) {
+	// _configChanged = true;
+	// }
+	// return false;
+	// }
+	// }
+	// }
+	//
+	// if (!(res instanceof IFile)) {
+	// return true; // visit the children
+	// }
+	//
+	// if (_configs != null) {
+	// // See if the changed resource is a faces configuration file
+	// for (int x = 0, size = _configs.size(); x < size; x++) {
+	// IFile configFile = currentProject
+	// .getFile((String) _configs.get(x));
+	// if (configFile.equals(res)) {
+	// if (delta.getKind() == IResourceDelta.REMOVED
+	// || delta.getKind() == IResourceDelta.ADDED) {
+	// _configChanged = true;
+	// return false;
+	// }
+	//
+	// int flags = delta.getFlags();
+	// if (((flags & IResourceDelta.CONTENT) != 0)
+	// || ((flags & IResourceDelta.REPLACED) != 0)) {
+	// _configChanged = true;
+	// return false;
+	// }
+	// break;
+	// }
+	// }
+	// }
+	//
+	// if (res.getName().equalsIgnoreCase(
+	// IFileFolderConstants.FILE_WEB_XML)) {
+	// _configChanged = true;
+	// }
+	// return false;
+	// }
+	// }
+
+	// ResourceTracker _tracker = new ResourceTracker();
+
+	/**
+	 * 
+	 */
+	public FacesConfigManager(IProject project) {
+		this.currentProject = project;
+	}
+
+	// public EditingDomain getEditingDomain()
+	// {
+	// return _editingDomain;
+	// }
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.sybase.stf.jmt.models.IFacesConfigManager#getProject()
+	 */
+	public IProject getProject() {
+		return currentProject;
+	}
+
+	// public void configurate()
+	// {
+	// List factories = new ArrayList();
+	// factories.add(new ResourceItemProviderAdapterFactory());
+	// factories.add(new FacesConfig10ItemProviderAdapterFactory());
+	// factories.add(new ReflectiveItemProviderAdapterFactory());
+	// _adapterFactory = new ComposedAdapterFactory(factories);
+	//
+	// BasicCommandStack commandStack = new BasicCommandStack();
+	// _editingDomain = new AdapterFactoryEditingDomain(_adapterFactory,
+	// commandStack);
+	//
+	// // read everything from scratch
+	// refresh();
+	//
+	// ResourcesPlugin.getWorkspace().addResourceChangeListener(_tracker);
+	// }
+
+	// public void deconfigurate()
+	// {
+	// ResourcesPlugin.getWorkspace().removeResourceChangeListener(_tracker);
+	// // XXX: do we need to do anything here?
+	// }
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.sybase.stf.jmt.models.IFacesConfigManager#getFacesConfigs()
+	 */
+	// public FacesConfigType[] getFacesConfigs() {
+	// if (this._facesConfigs == null) {
+	// this._facesConfigs = new FacesConfigType[0];
+	// }
+	// return this._facesConfigs;
+	// }
+	public IFile[] getFacesConfigs() {
+		if (facesConfigFileList == null || facesConfigFileList.size() == 0) {
+			loadConfiguration();
+		}
+		IFile[] files = new IFile[facesConfigFileList.size()];
+		facesConfigFileList.toArray(files);
+		return files;
+	}
+
+	public void refresh() {
+		if (currentProject == null) {
+			return;
+		}
+		// Clear the current resources from the set
+		// ResourceSet rset = _editingDomain.getResourceSet();
+		// rset.getResources().clear();
+		// _configs = null;
+		// _facesConfigs = null;
+
+		loadConfiguration();
+		// Loop thru all the configuration files
+		// for (int x = 0; x < _configs.size(); x++) {
+		// URI fileURI = null;
+		// Resource resource = null;
+		// if (currentProject.getFolder(WEBINF_FOLDER).exists()) {
+		// IFile file = currentProject.getFile((String) _configs.get(x));
+		// if (file != null && file.exists()) {
+		// fileURI = URI.createURI("platform:/resource/"
+		// + currentProject.getName() + _configs.get(x)); //$NON-NLS-1$
+		// resource = new FacesConfig10ResourceFactoryImpl()
+		// .createResource(fileURI);
+		// } else {
+		// // missing config file. skip this one
+		// // FIXME: log it.
+		// }
+		// }
+		//
+		// if (resource != null) {
+		// try {
+		// resource.unload();
+		// FacesConfig config = new FacesConfig(resource);
+		// config.load();
+		// } catch (Exception ex) {
+		// _log.error("common.error", ex);
+		// // String name = resource.getURI().path();
+		// // _log.error("DBView.LoadResourceError", name, ex);
+		// // //$NON-NLS-1$ //$NON-NLS-2$
+		// // DataBindingPlugin.getAlerts().detailError("DBView.ResourceTitle",
+		// // "DBView.LoadResourceError", name, ex); //$NON-NLS-1$
+		// // //$NON-NLS-2$
+		// // return null;
+		// }
+		//
+		// if (resource.isLoaded()) {
+		// rset.getResources().add(resource);
+		// } else {
+		// // FIXME: log
+		// }
+		// }
+		// }
+		//
+		// int count = rset.getResources().size();
+		// List configs = new ArrayList();
+		// for (int i = 0; i < count; i++) {
+		// Resource resource = (Resource) rset.getResources().get(i);
+		// if (resource.getContents() == null
+		// || resource.getContents().size() == 0) {
+		// continue;
+		// }
+		//
+		// try {
+		// DocumentRoot root = (DocumentRoot) resource.getContents()
+		// .get(0);
+		// FacesConfigType sts = root.getFacesConfig();
+		// if (sts != null) {
+		// configs.add(sts);
+		// }
+		// } catch (Exception ex) {
+		// _log.error("common.error", ex);
+		// }
+		// }
+		// this._facesConfigs = new FacesConfigType[configs.size()];
+		// configs.toArray(this._facesConfigs);
+
+		this.fireFacesConfigChanged();
+
+	}
+
+	/**
+	 * check whether the config file is existed in all registered config files
+	 * or not.
+	 * 
+	 * @param configFileName
+	 * @return
+	 */
+	// private boolean isDuplicateConfigFile(String configFileName) {
+	// boolean isDuplicated = false;
+	// // See if all the configuration files exist
+	// for (int x = 0; x < _configs.size(); x++) {
+	// if (configFileName.equalsIgnoreCase((String) _configs.get(x))) {
+	// isDuplicated = true;
+	// }
+	// }
+	// return isDuplicated;
+	// }
+	/**
+	 * check whether the config file is existed in all registered config files
+	 * or not.
+	 * 
+	 * @param facesConfigFile
+	 * @return
+	 */
+	private boolean isDuplicateConfigFile(IFile facesConfigFile) {
+
+		// See if all the configuration files exist
+		if (facesConfigFileList != null
+				&& facesConfigFileList.contains(facesConfigFile)) {
+			return true;
+		}
+		return false;
+	}
+
+	private void registerConfigFile(IFile facesConfigFile) {
+		if (facesConfigFile != null && !isDuplicateConfigFile(facesConfigFile)) {
+			facesConfigFileList.add(facesConfigFile);
+		}
+
+	}
+
+	/**
+	 * Determine what files comprise the Java Server Faces configuration
+	 * 
+	 * @param project -
+	 *            the project to look for configuration files in
+	 */
+	public void loadConfiguration() {
+
+		String paramValue = null;
+		WebArtifactEdit web = WebArtifactEdit
+				.getWebArtifactEditForRead(currentProject);
+		if (web != null) {
+			WebApp webApp = web.getWebApp();
+
+			EList contextParams = webApp.getContextParams();
+			for (int i = 0, n = contextParams.size(); i < n; i++) {
+				ParamValue aParam = (ParamValue) contextParams.get(i);
+				if (WebDotXMLTagConstants.CONFIG_FILES_CONTEXT_PARAM
+						.equals(aParam.getName())
+						|| WebDotXMLTagConstants.APPLICATION_CONFIG_FILES_CONTEXT_PARAM
+								.equals(aParam.getName())) {
+					paramValue = aParam.getValue();
+					break;
+				}
+			}
+			web.dispose();
+		}
+
+		// _configs = new ArrayList();
+
+		facesConfigFileList = new ArrayList();
+
+		IFolder webrootFolder = WebrootUtil
+				.getWebContentFolder(this.currentProject);
+		IFile defaultFacesConfigFile = webrootFolder
+				.getFile(IFileFolderConstants.FOLDER_WEBINF
+						+ IFileFolderConstants.PATH_SEPARATOR
+						+ IFileFolderConstants.FILE_FACES_CONFIG_XML);
+		registerConfigFile(defaultFacesConfigFile);
+
+		if (paramValue != null) {
+			// Parse the list to an array of files
+			StringTokenizer tokenizer = new StringTokenizer(paramValue, ","); //$NON-NLS-1$
+			while (tokenizer.hasMoreTokens()) {
+				IFile aConifgFile = webrootFolder.getFile(tokenizer.nextToken()
+						.trim());
+				registerConfigFile(aConifgFile);
+			}
+		}
+	}
+
+	// ---------------------------------------------------------------------------------------
+	// methods for change events.
+	protected void fireFacesConfigChanged() {
+		Object[] listeners = this.listenerList.getListeners();
+		for (int i = 0; i < listeners.length; i++) {
+			IFacesConfigChangeListener l = (IFacesConfigChangeListener) listeners[i];
+			if (l != null) {
+				l.facesConfigChanged();
+			}
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.sybase.stf.jmt.models.IFacesConfigManager#addFacesConfigChangeListener(com.sybase.stf.jmt.models.IFacesConfigChangeListener)
+	 */
+	public void addFacesConfigChangeListener(IFacesConfigChangeListener listener) {
+		listenerList.add(listener);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.sybase.stf.jmt.models.IFacesConfigManager#removeFacesConfigChangeListener(com.sybase.stf.jmt.models.IFacesConfigChangeListener)
+	 */
+	public void removeFacesConfigChangeListener(
+			IFacesConfigChangeListener listener) {
+		listenerList.remove(listener);
+	}
+
+	// ------------------------------------------------------------------------------------------------------
+	/**
+	 * Saves all the configuration resources to the local file system
+	 */
+	// public void save()
+	// {
+	// ResourceSet rset = _editingDomain.getResourceSet();
+	// EList resources = rset.getResources();
+	// for (int r = 0; r < resources.size(); r++)
+	// {
+	// Resource resource = (Resource)resources.get(r);
+	// if (resource.isModified())
+	// {
+	// FacesConfig config = new FacesConfig(resource);
+	// try
+	// {
+	// config.save();
+	// }
+	// catch (IOException e)
+	// {
+	// _log.error("FacesConfig.SaveError", e);
+	// }
+	// }
+	// }
+	// this.fireFacesConfigChanged();
+	// }
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.sybase.stf.jmt.models.IFacesConfigManager#beginModify()
+	 */
+	// public void beginModify()
+	// {
+	// // do nothing for now.
+	// }
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.sybase.stf.jmt.models.IFacesConfigManager#endModify()
+	 */
+	// public void endModify()
+	// {
+	// save();
+	// }
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/IFacesConfigChangeEvent.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/IFacesConfigChangeEvent.java
new file mode 100644
index 0000000..0766fd7
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/IFacesConfigChangeEvent.java
@@ -0,0 +1,22 @@
+/***************************************************************************************************
+ * Copyright (c) 2005, 2006 IBM Corporation and others. 
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors: 
+ *   IBM Corporation - initial API and implementation
+ **************************************************************************************************/
+package org.eclipse.jst.jsf.facesconfig.ui.pageflow.util;
+
+/**
+ * @author xnjiang
+ *
+ */
+public interface IFacesConfigChangeEvent {
+
+	public boolean isManagedBeanChanged();
+	public boolean isNavigationRuleChanged();
+	
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/IFacesConfigChangeListener.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/IFacesConfigChangeListener.java
new file mode 100644
index 0000000..59ed20f
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/IFacesConfigChangeListener.java
@@ -0,0 +1,22 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2005 Sybase, Inc. 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:
+ *     Sybase, Inc. - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.jsf.facesconfig.ui.pageflow.util;
+
+import java.util.EventListener;
+
+/**
+ * @author Yang Liu
+ * @version
+ */
+public interface IFacesConfigChangeListener extends EventListener {
+	public void facesConfigChanged();
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/IFacesConfigManager.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/IFacesConfigManager.java
new file mode 100644
index 0000000..922116f
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/IFacesConfigManager.java
@@ -0,0 +1,50 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2005 Sybase, Inc. 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:
+ *     Sybase, Inc. - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.jsf.facesconfig.ui.pageflow.util;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+
+/**
+ * @author Yang Liu
+ * @version
+ */
+public interface IFacesConfigManager // extends ILifecycle
+{
+	public IProject getProject();
+
+	/**
+	 * 
+	 * @return the array of the faces config files, it will not return null
+	 */
+	public IFile[] getFacesConfigs();
+
+	public void addFacesConfigChangeListener(IFacesConfigChangeListener listener);
+
+	public void removeFacesConfigChangeListener(
+			IFacesConfigChangeListener listener);
+
+	/**
+	 * if the clients wants to change any of the faces-config file, should call
+	 * this method.
+	 * 
+	 */
+	// public void beginModify();
+	//
+	// /**
+	// * after the client finish modify should call this method. The config
+	// manager will save the
+	// * config files and fire out change event to other clients.
+	// *
+	// */
+	// public void endModify();
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/LinkHelper.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/LinkHelper.java
new file mode 100644
index 0000000..2485fc2
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/LinkHelper.java
@@ -0,0 +1,118 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2005 Sybase, Inc. 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:
+ *     Sybase, Inc. - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.jst.jsf.facesconfig.ui.pageflow.util;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink;
+
+/**
+ * Helper link class, store the information of link, its' previous and
+ * subsequent links.
+ * 
+ * @author Xiao-guang Zhang
+ */
+public class LinkHelper {
+	/** the pflink is visited or not */
+	private boolean bVisited = false;
+
+	/** subsequent links */
+	private List subsequentLinks = null;
+
+	/* previous links */
+	private List previousLinks = null;
+
+	/** the pflink */
+	private PFLink element = null;
+
+	/**
+	 * constructor
+	 * 
+	 * @param element -
+	 *            pflink
+	 */
+	public LinkHelper(PFLink element) {
+		this.element = element;
+	}
+
+	/**
+	 * get the encapsulated pflink
+	 * 
+	 * @return - the encapsulated pflink
+	 */
+	public Object getModel() {
+		return element;
+	}
+
+	/**
+	 * check the pflink is visited or not.
+	 * 
+	 * @return - the pflink is visited or not.
+	 */
+	public boolean isVisited() {
+		return bVisited;
+	}
+
+	/**
+	 * get the subsequent links
+	 * 
+	 * @return - the subsequent links
+	 */
+	public List getSubsequentLinks() {
+		return subsequentLinks;
+	}
+
+	/**
+	 * add the subsequent link
+	 * 
+	 * @param link -
+	 *            one subsequent link
+	 */
+	public void addSubsequentLink(LinkHelper link) {
+		if (subsequentLinks == null) {
+			subsequentLinks = new ArrayList();
+		}
+		subsequentLinks.add(link);
+	}
+
+	/**
+	 * add a previous link
+	 * 
+	 * @return - a previous link
+	 */
+	public void addPreviousLink(LinkHelper link) {
+		if (previousLinks == null) {
+			previousLinks = new ArrayList();
+		}
+		previousLinks.add(link);
+	}
+
+	/**
+	 * get previous links
+	 * 
+	 * @return - previous links
+	 */
+	public List getPreviousLink() {
+		return previousLinks;
+	}
+
+	/**
+	 * set the visit status
+	 * 
+	 */
+	public void setVisit(boolean bVisited) {
+		this.bVisited = bVisited;
+	}
+
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/LinkNavigationRule.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/LinkNavigationRule.java
new file mode 100644
index 0000000..a860c31
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/LinkNavigationRule.java
@@ -0,0 +1,95 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2005 Sybase, Inc. 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:
+ *     Sybase, Inc. - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.jst.jsf.facesconfig.ui.pageflow.util;
+
+import org.eclipse.jst.jsf.facesconfig.emf.NavigationCaseType;
+import org.eclipse.jst.jsf.facesconfig.emf.NavigationRuleType;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink;
+
+/**
+ * This class stores the relationship between link and navigation rules.
+ * 
+ * @author Xiao-guang Zhang
+ */
+public class LinkNavigationRule {
+	/** related the navigation rule and case */
+	private NavigationRuleType navigationRule = null;
+
+	private NavigationCaseType navigationCase = null;
+
+	/** the first pflink */
+	private PFLink firstLink = null;
+
+	/** the second pflink, maybe is null */
+	private PFLink secondLink = null;
+
+	/**
+	 * get the generated navigation rule for this link.
+	 * 
+	 * @return - the generated navigation rule for this link
+	 */
+	public NavigationRuleType getNavigationRule() {
+		return navigationRule;
+	}
+
+	/**
+	 * get the generated navigation case for this link.
+	 * 
+	 * @return - the generated navigation case for this link
+	 */
+	public NavigationCaseType getNavigationCase() {
+		return navigationCase;
+	}
+
+	/**
+	 * set the generated navigation rule and case for this link.
+	 * 
+	 * @param navigationRule
+	 * @param navigationCase
+	 */
+	public void setNavigationRule(NavigationRuleType navigationRule,
+			NavigationCaseType navigationCase) {
+		this.navigationRule = navigationRule;
+		this.navigationCase = navigationCase;
+	}
+
+	/**
+	 * set two links for the navigation rules
+	 * 
+	 * @param link
+	 * @param nextLink
+	 */
+	public void setLinks(PFLink firstlink, PFLink secondLink) {
+		this.firstLink = firstlink;
+		this.secondLink = secondLink;
+	}
+
+	/**
+	 * get the first link
+	 * 
+	 * @return - the first link
+	 */
+	public PFLink getFirstLink() {
+		return firstLink;
+	}
+
+	/**
+	 * get the second link
+	 * 
+	 * @return - the second link
+	 */
+	public PFLink getSecondLink() {
+		return secondLink;
+	}
+
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/section/ManagedBeanScopeTreeItem.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/section/ManagedBeanScopeTreeItem.java
index 69f6016..4537fd2 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/section/ManagedBeanScopeTreeItem.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/section/ManagedBeanScopeTreeItem.java
@@ -66,11 +66,9 @@
 		for (Iterator it = managedBeans.iterator(); it.hasNext();) {
 			ManagedBeanType managedBean = (ManagedBeanType) it.next();
 
-			if (managedBean.getManagedBeanScope() != null) {
-				if (scope.equals(managedBean.getManagedBeanScope()
-						.getTextContent())) {
-					result.add(managedBean);
-				}
+			if (scope
+					.equals(managedBean.getManagedBeanScope().getTextContent())) {
+				result.add(managedBean);
 			}
 		}
 
diff --git a/jsf/plugins/org.eclipse.jst.jsf.ui/.classpath b/jsf/plugins/org.eclipse.jst.jsf.ui/.classpath
deleted file mode 100644
index 751c8f2..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.ui/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/jsf/plugins/org.eclipse.jst.jsf.ui/.cvsignore b/jsf/plugins/org.eclipse.jst.jsf.ui/.cvsignore
deleted file mode 100644
index 7033a79..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.ui/.cvsignore
+++ /dev/null
@@ -1,4 +0,0 @@
-bin
-@dot*
-temp.folder
-build.xml
diff --git a/jsf/plugins/org.eclipse.jst.jsf.ui/.project b/jsf/plugins/org.eclipse.jst.jsf.ui/.project
deleted file mode 100644
index 45f845d..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.ui/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jst.jsf.ui</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/jsf/plugins/org.eclipse.jst.jsf.ui/.settings/org.eclipse.core.resources.prefs b/jsf/plugins/org.eclipse.jst.jsf.ui/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 943c5d0..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.ui/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Mon Apr 24 18:04:28 PDT 2006
-eclipse.preferences.version=1
-encoding//src/org/eclipse/jst/jsf/ui/internal/messages.properties=8859_1
diff --git a/jsf/plugins/org.eclipse.jst.jsf.ui/META-INF/MANIFEST.MF b/jsf/plugins/org.eclipse.jst.jsf.ui/META-INF/MANIFEST.MF
deleted file mode 100644
index cf13353..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.ui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,32 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %plugin.name
-Bundle-SymbolicName: org.eclipse.jst.jsf.ui; singleton:=true
-Bundle-Version: 0.5.0.qualifier
-Bundle-Activator: org.eclipse.jst.jsf.ui.internal.JSFUiPlugin
-Bundle-Vendor: %plugin.provider
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
- org.eclipse.jst.jsf.core,
- org.eclipse.wst.common.project.facet.core,
- org.eclipse.wst.common.project.facet.ui,
- org.eclipse.jst.j2ee.web,
- org.eclipse.jst.server.core,
- org.eclipse.wst.server.core,
- org.eclipse.wst.common.frameworks,
- org.eclipse.jst.common.frameworks,
- org.eclipse.jdt.core,
- org.eclipse.jdt.ui,
- org.eclipse.core.resources,
- org.eclipse.jst.j2ee,
- org.eclipse.emf.common,
- org.eclipse.wst.common.frameworks.ui,
- org.eclipse.ui.ide,
- org.eclipse.jst.j2ee.core,
- org.eclipse.emf.ecore,
- org.eclipse.jem.util
-Eclipse-LazyStart: true
-Export-Package: org.eclipse.jst.jsf.ui.internal;x-friends:="org.eclipse.jst.jsf.ui.tests",
- org.eclipse.jst.jsf.ui.internal.classpath;x-friends:="org.eclipse.jst.jsf.ui.tests",
- org.eclipse.jst.jsf.ui.internal.project.facet;x-friends:="org.eclipse.jst.jsf.ui.tests"
diff --git a/jsf/plugins/org.eclipse.jst.jsf.ui/build.properties b/jsf/plugins/org.eclipse.jst.jsf.ui/build.properties
deleted file mode 100644
index c32d52b..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.ui/build.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# 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
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.xml,\
-               icons/,\
-               plugin.properties
diff --git a/jsf/plugins/org.eclipse.jst.jsf.ui/icons/full/wizban/addlibrary_wiz.gif b/jsf/plugins/org.eclipse.jst.jsf.ui/icons/full/wizban/addlibrary_wiz.gif
deleted file mode 100644
index 128c9d1..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.ui/icons/full/wizban/addlibrary_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/jsf/plugins/org.eclipse.jst.jsf.ui/icons/obj16/jar_l_obj.gif b/jsf/plugins/org.eclipse.jst.jsf.ui/icons/obj16/jar_l_obj.gif
deleted file mode 100644
index 6cb185c..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.ui/icons/obj16/jar_l_obj.gif
+++ /dev/null
Binary files differ
diff --git a/jsf/plugins/org.eclipse.jst.jsf.ui/icons/obj16/jar_obj.gif b/jsf/plugins/org.eclipse.jst.jsf.ui/icons/obj16/jar_obj.gif
deleted file mode 100644
index 2fa1d77..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.ui/icons/obj16/jar_obj.gif
+++ /dev/null
Binary files differ
diff --git a/jsf/plugins/org.eclipse.jst.jsf.ui/icons/obj16/library_obj.gif b/jsf/plugins/org.eclipse.jst.jsf.ui/icons/obj16/library_obj.gif
deleted file mode 100644
index cb55e33..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.ui/icons/obj16/library_obj.gif
+++ /dev/null
Binary files differ
diff --git a/jsf/plugins/org.eclipse.jst.jsf.ui/plugin.properties b/jsf/plugins/org.eclipse.jst.jsf.ui/plugin.properties
deleted file mode 100644
index df0d28e..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.ui/plugin.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# 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
-###############################################################################
-plugin.name=JavaServer Faces UI Plug-in
-plugin.provider=Eclipse.org
diff --git a/jsf/plugins/org.eclipse.jst.jsf.ui/plugin.xml b/jsf/plugins/org.eclipse.jst.jsf.ui/plugin.xml
deleted file mode 100644
index f9a0d86..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.ui/plugin.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-  <!-- JSF Project Facet --> 
-  <extension point="org.eclipse.wst.common.project.facet.ui.wizard">
-  
-    <wizard-pages facet="jst.jsf" version="1.1">
-      <install>
-        <config class="org.eclipse.jst.jsf.core.internal.project.facet.JSFFacetInstallConfig"/>
-        <page   class="org.eclipse.jst.jsf.ui.internal.project.facet.JSFFacetInstallPage"/>
-      </install>
-    </wizard-pages>
-
-    <wizard-pages facet="jst.jsf" version="1.2">
-      <install>
-        <config class="org.eclipse.jst.jsf.core.internal.project.facet.JSFFacetInstallConfig"/>
-        <page   class="org.eclipse.jst.jsf.ui.internal.project.facet.JSFFacetInstallPage"/>
-      </install>
-    </wizard-pages>
-  </extension>
-  <extension
-        point="org.eclipse.ui.preferencePages">
-     <page
-           category="org.eclipse.wst.sse.ui.internal.provisional.preferences"
-           class="org.eclipse.jst.jsf.ui.internal.classpath.JSFLibrariesPreferencePage"
-           id="org.eclipse.jst.jsf.ui.jsfLibraryPage"
-           name="JSF Libraries"/>
-  </extension>
-  <extension
-        point="org.eclipse.ui.newWizards">
-     <category
-           id="org.eclipse.jst.jsf.ui.jsfcategory"
-           name="JavaServer Faces"/>
-     <wizard
-           canFinishEarly="false"
-           category="org.eclipse.jst.jsf.ui.jsfcategory"
-           class="org.eclipse.jst.jsf.ui.internal.classpath.JSFLibraryWizard"
-           hasPages="true"
-           icon="icons/obj16/library_obj.gif"
-           id="org.eclipse.jst.jsf.ui.jsfLibraryWizard"
-           name="New JSF Library"
-           preferredPerspectives="org.eclipse.jst.j2ee.J2EEPerspective"/>
-  </extension>
-</plugin>
diff --git a/jsf/plugins/org.eclipse.jst.jsf.ui/src/org/eclipse/jst/jsf/ui/internal/JSFUiPlugin.java b/jsf/plugins/org.eclipse.jst.jsf.ui/src/org/eclipse/jst/jsf/ui/internal/JSFUiPlugin.java
deleted file mode 100644
index 88ab4e3..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.ui/src/org/eclipse/jst/jsf/ui/internal/JSFUiPlugin.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************
- * 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
- *    Ian Trimble - added logging methods
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.ui.internal;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * JSF UI plugin.
- * 
- * @author Gerry Kessler - Oracle, Ian Trimble - Oracle
- */
-public class JSFUiPlugin extends AbstractUIPlugin {
-
-	public static final String PLUGIN_ID = "org.eclipse.jst.jsf.ui.internal.JSFUiPlugin"; //$NON-NLS-1$
-	//The shared instance.
-	private static JSFUiPlugin plugin;
-
-	/**
-	 * The constructor.
-	 */
-	public JSFUiPlugin() {
-		plugin = this;
-	}
-
-	/**
-	 * This method is called upon plug-in activation
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-	}
-
-	/**
-	 * This method is called when the plug-in is stopped
-	 */
-	public void stop(BundleContext context) throws Exception {
-		super.stop(context);
-		plugin = null;
-	}
-
-	/**
-	 * Returns the shared instance.
-	 */
-	public static JSFUiPlugin getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * Returns an image descriptor for the image file at the given
-	 * plug-in relative path.
-	 *
-	 * @param path the path
-	 * @return the image descriptor
-	 */
-	public static ImageDescriptor getImageDescriptor(String path) {
-		path = "icons/" + path; //$NON-NLS-1$
-		return AbstractUIPlugin.imageDescriptorFromPlugin("org.eclipse.jst.jsf.ui", path); //$NON-NLS-1$
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.common.frameworks.internal.WTPPlugin#getPluginID()
-	 */
-	public String getPluginID() {
-		return PLUGIN_ID;
-	}
-
-	/**
-	 * Logs using the default ILog implementation provided by getLog().
-	 * 
-	 * @param severity Severity (IStatus constant) of log entry
-	 * @param message Human-readable message describing log entry
-	 * @param ex Throwable instance (can be null)
-	 */
-	public static void log(int severity, String message, Throwable ex) {
-		getDefault().getLog().log(new Status(severity, PLUGIN_ID, IStatus.OK, message, ex));
-	}
-
-	/**
-	 * Logs using the default ILog implementation provided by getLog().
-	 * 
-	 * @param severity Severity (IStatus constant) of log entry
-	 * @param message Human-readable message describing log entry
-	 */
-	public static void log(int severity, String message) {
-		log(severity, message, null);
-	}
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.ui/src/org/eclipse/jst/jsf/ui/internal/Messages.java b/jsf/plugins/org.eclipse.jst.jsf.ui/src/org/eclipse/jst/jsf/ui/internal/Messages.java
deleted file mode 100644
index 452cfdf..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.ui/src/org/eclipse/jst/jsf/ui/internal/Messages.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * 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
- *    Ian Trimble - changed to work correctly with org.eclipse.osgi.util.NLS
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.ui.internal;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * String resource handler.
- * 
- * @author Gerry Kessler - Oracle, Ian Trimble - Oracle
- */
-public class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.jst.jsf.ui.internal.messages"; //$NON-NLS-1$
-
-	public static String JSFFacetInstallPage_title;
-	public static String JSFFacetInstallPage_description;
-	public static String JSFFacetInstallPage_JSFImplLabel;
-	public static String JSFFacetInstallPage_Add1;
-	public static String JSFFacetInstallPage_Add2;
-	public static String JSFFacetInstallPage_DeployJarsLabel;
-	public static String JSFFacetInstallPage_JSFConfigLabel;
-	public static String JSFFacetInstallPage_JSFServletNameLabel;
-	public static String JSFFacetInstallPage_JSFURLMappingLabel;
-	public static String JSFFacetInstallPage_PatternDialogTitle;
-	public static String JSFFacetInstallPage_PatternDialogDesc;
-	public static String JSFFacetInstallPage_Remove;
-	public static String JSFFacetInstallPage_PatternEmptyMsg;
-	public static String JSFFacetInstallPage_PatternSpecifiedMsg;
-	public static String JSFFacetInstallPage_ErrorNoWebAppDataModel;
-
-	public static String JSFLibrariesPreferencePage_DefinedJSFLibraries;
-	public static String JSFLibrariesPreferencePage_New;
-	public static String JSFLibrariesPreferencePage_Edit;
-	public static String JSFLibrariesPreferencePage_Remove;
-	public static String JSFLibrariesPreferencePage_CannotRemovePluginProvidedTitle;
-	public static String JSFLibrariesPreferencePage_CannotRemovePluginProvidedMessage;
-	public static String JSFLibrariesPreferencePage_MakeDefault;
-	public static String JSFLibrariesPreferencePage_Description;
-	public static String JSFLibrariesPreferencePage_CannotModifyPluginProvidedTitle;
-	public static String JSFLibrariesPreferencePage_CannotModifyPluginProvidedMessage;
-
-	public static String JSFLibraryContainerWizardPage_PageName;
-	public static String JSFLibraryContainerWizardPage_Title;
-	public static String JSFLibraryContainerWizardPage_Description;
-	public static String JSFLibraryContainerWizardPage_WarningNoJSFFacet;
-	public static String JSFLibraryContainerWizardPage_JSFLibraries;
-	public static String JSFLibraryContainerWizardPage_Add;
-	public static String JSFLibraryContainerWizardPage_ErrorInitializing;
-
-	public static String JSFLibraryWizard_DESCRIPTION;
-	public static String JSFLibraryWizard_IMPLS_ONLY_DESC;
-	public static String JSFLibraryWizard_CreateImplementation;
-	public static String JSFLibraryWizard_CreateJSFLibrary;
-	public static String JSFLibraryWizard_EditJSFLibrary;
-	public static String JSFLibraryWizard_JSFLibrary;
-	public static String JSFLibraryWizard_LibraryName;
-	public static String JSFLibraryWizard_VersionSupported;
-	public static String JSFLibraryWizard_LibraryJars;
-	public static String JSFLibraryWizard_IsJSFImplementation;
-	public static String JSFLibraryWizard_DeployJars;
-	public static String JSFLibraryWizard_Add;
-	public static String JSFLibraryWizard_Remove;
-	public static String JSFLibraryWizard_ExtJarFileDialogTitle;
-	public static String JSFLibraryWizard_ValidateNoJars;
-	public static String JSFLibraryWizard_ValidateNoLibraryName;
-	public static String JSFLibraryWizard_ValidateExistingLibraryName;
-
-	static {
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.ui/src/org/eclipse/jst/jsf/ui/internal/classpath/JSFLibrariesPreferencePage.java b/jsf/plugins/org.eclipse.jst.jsf.ui/src/org/eclipse/jst/jsf/ui/internal/classpath/JSFLibrariesPreferencePage.java
deleted file mode 100644
index f9821a8..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.ui/src/org/eclipse/jst/jsf/ui/internal/classpath/JSFLibrariesPreferencePage.java
+++ /dev/null
@@ -1,384 +0,0 @@
-/*******************************************************************************
- * 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
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.ui.internal.classpath;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.jst.jsf.core.internal.JSFCorePlugin;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.ArchiveFile;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.PluginProvidedJSFLibrary;
-import org.eclipse.jst.jsf.ui.internal.JSFUiPlugin;
-import org.eclipse.jst.jsf.ui.internal.Messages;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.TreeItem;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.eclipse.ui.IWorkbenchWizard;
-
-/**
- * Provides a preference page for JSF Libraries.
- * 
- * @author Gerry Kessler - Oracle
- */
-public class JSFLibrariesPreferencePage extends PreferencePage implements IWorkbenchPreferencePage{
-	private IWorkbench wb;
-
-	private TreeViewer tv;
-	private TreeViewerAdapter tvAdapter;
-	private TreeLabelProvider tvLabelProvider;
-	
-	private Composite btnComp;
-
-	private Button btnNew;
-	private Button btnEdit;
-	private Button btnDelete;
-	private Button btnMakeDefaultImpl;
-	
-	protected Control createContents(Composite parent) {
-		Composite c = new Composite(parent, SWT.NONE);
-		c.setLayout(new GridLayout(2, false)); 
-		c.setLayoutData(new GridData(GridData.FILL_BOTH));				
-		
-		Label lblLibs = new Label(c, SWT.NONE);
-		lblLibs.setText(Messages.JSFLibrariesPreferencePage_DefinedJSFLibraries);
-		GridData gd1 = new GridData();
-		gd1.horizontalSpan = 2;
-		lblLibs.setLayoutData(gd1);
-		
-		tv = new TreeViewer(c, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
-		tvAdapter = new TreeViewerAdapter();
-		tvLabelProvider = new TreeLabelProvider();
-		tv.setContentProvider(tvAdapter);
-		tv.setLabelProvider(tvLabelProvider);
-		tv.addSelectionChangedListener(tvAdapter);
-		tv.addDoubleClickListener(tvAdapter);
-		tv.getTree().setLayoutData(new GridData(GridData.FILL_BOTH));
-		tv.setInput(getJSFLibraries());
-		
-		createButtons(c);
-		
-		return c;
-	}
-
-	private void createButtons(Composite c){		
-		btnComp = new Composite(c, SWT.NONE);
-		GridLayout gl1 = new GridLayout(1, false);
-		gl1.marginHeight = 0;
-		gl1.marginWidth = 0;
-		btnComp.setLayout(gl1);
-		btnComp.setLayoutData(new GridData(GridData.END | GridData.VERTICAL_ALIGN_FILL));
-		
-		btnNew = new Button(btnComp, SWT.NONE);
-		btnNew.setText(Messages.JSFLibrariesPreferencePage_New);
-		btnNew.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_BEGINNING));
-		btnNew.addSelectionListener(new SelectionAdapter(){
-			public void widgetSelected(SelectionEvent e) {
-				openJSFLibraryEditDialog(null);
-			}
-		});
-		
-		btnEdit = new Button(btnComp, SWT.NONE);
-		btnEdit.setText(Messages.JSFLibrariesPreferencePage_Edit);
-		btnEdit.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_BEGINNING));
-		btnEdit.setEnabled(false);
-		btnEdit.addSelectionListener(new SelectionAdapter(){
-			public void widgetSelected(SelectionEvent e) {
-				TreeItem[] element = (TreeItem[]) tv.getTree().getSelection();
-				if (element != null){
-					openJSFLibraryEditDialog(element[0]);
-				}
-
-			}
-		});
-		
-		btnDelete = new Button(btnComp, SWT.NONE);
-		btnDelete.setText(Messages.JSFLibrariesPreferencePage_Remove);
-		btnDelete.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_BEGINNING));
-		btnDelete.setEnabled(false);
-		btnDelete.addSelectionListener(new SelectionAdapter(){
-			public void widgetSelected(SelectionEvent e) {
-				boolean modified = false;
-				if (tv.getSelection() instanceof StructuredSelection){
-					StructuredSelection objs = (StructuredSelection)tv.getSelection();
-					if (objs != null){
-						Iterator it = objs.iterator();
-						while (it.hasNext()){
-							JSFLibrary lib = (JSFLibrary)it.next();
-							if (lib instanceof PluginProvidedJSFLibrary)
-								MessageDialog.openInformation(
-										getShell(),
-										Messages.JSFLibrariesPreferencePage_CannotRemovePluginProvidedTitle,
-										Messages.JSFLibrariesPreferencePage_CannotRemovePluginProvidedMessage);
-	
-							else {
-								JSFCorePlugin.getDefault().getJSFLibraryRegistry().removeJSFLibrary(lib);
-								modified = true;
-							}
-						}
-						if (modified){
-							JSFCorePlugin.getDefault().saveJSFLibraryRegistry();
-							tv.refresh();
-						}
-					}
-				}
-			}
-		});
-		
-		btnMakeDefaultImpl = new Button(btnComp, SWT.NONE);
-		btnMakeDefaultImpl.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_END));
-		btnMakeDefaultImpl.setText(Messages.JSFLibrariesPreferencePage_MakeDefault);
-		btnMakeDefaultImpl.setVisible(false);
-		btnMakeDefaultImpl.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				if (tv.getSelection() instanceof StructuredSelection){
-					StructuredSelection objs = (StructuredSelection)tv.getSelection();
-					if (objs != null){
-						if (objs.getFirstElement() instanceof JSFLibrary){
-							 JSFLibrary lib = (JSFLibrary)objs.getFirstElement();
-							 JSFCorePlugin.getDefault().getJSFLibraryRegistry().setDefaultImplementation(lib);							 							
-						 }
-						 JSFCorePlugin.getDefault().saveJSFLibraryRegistry();
-						 tv.refresh();
-					}
-				}
-			}
-		});
-		
-	}
-	private Object getJSFLibraries() {
-		return JSFCorePlugin.getDefault().getJSFLibraryRegistry().getAllJSFLibraries();
-	}
-
-	public void init(IWorkbench workbench) {
-		wb = workbench;
-		setDescription(Messages.JSFLibrariesPreferencePage_Description);
-		noDefaultAndApplyButton();
-	}
-	
-	/**
-	 * Getter created only for JUnit tests.  Should not be used otherwise.
-	 * @return the TreeViewer of JSF Libraries
-	 */
-	public Viewer getLibraryViewer(){
-		return tv;
-	}
-	
-	private class TreeViewerAdapter implements ITreeContentProvider, ISelectionChangedListener, IDoubleClickListener {
-		private final Object[] NO_ELEMENTS= new Object[0];
-
-		// ------- ITreeContentProvider Interface ------------
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-			// will never happen
-		}
-
-		public boolean isDeleted(Object element) {
-			return false;
-		}
-
-		public void dispose() {
-		}
-
-		public Object[] getElements(Object obj) {
-			return ((List)getJSFLibraries()).toArray();
-		}
-		
-		public Object[] getChildren(Object element) {
-			if (element instanceof JSFLibrary) {
-				return ((JSFLibrary)element).getArchiveFiles().toArray();
-			}
-			return NO_ELEMENTS;
-		}
-
-		public Object getParent(Object element) {
-//			if (elements instanceof JSFLibrary) {
-//				return tvAdapter.getParent(tv.getTree().class, element);
-//			}
-			return null;//fParentElement;
-		}
-
-		public boolean hasChildren(Object element) {
-			if (element instanceof JSFLibrary) {
-				return true;
-			}
-			return false;
-		}		
-
-		// ------- ISelectionChangedListener Interface ------------
-
-		public void selectionChanged(SelectionChangedEvent event) {
-			doListSelected(event);
-		}
-		
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IDoubleClickListener#doubleClick(org.eclipse.jface.viewers.DoubleClickEvent)
-		 */
-		public void doubleClick(DoubleClickEvent event) {
-			doDoubleClick(event);
-		}		
-	}
-
-	protected void doListSelected(SelectionChangedEvent event) {
-		updateButtonState();
-	}
-
-	protected void doDoubleClick(DoubleClickEvent event) {
-		openJSFLibraryEditDialog(tv.getTree().getSelection()[0]);
-	}
-	
-	private void updateButtonState() {
-		btnEdit.setEnabled(tv.getTree().getSelectionCount() == 1);	
-		if (tv.getTree().getSelectionCount() == 1 && tv.getTree().getSelection()[0].getData() instanceof JSFLibrary){	
-			btnDelete.setEnabled(true);
-			btnMakeDefaultImpl.setVisible(false);
-			JSFLibrary lib = (JSFLibrary)tv.getTree().getSelection()[0].getData();
-			btnMakeDefaultImpl.setVisible(lib.isImplementation());
-		} else {
-			btnDelete.setEnabled(false);
-			btnMakeDefaultImpl.setVisible(false);
-		}
-	}
-	
-	private void openJSFLibraryEditDialog(Object element) {
-		if (isPluginProvidedJSFLibrary(element)){
-			MessageDialog.openInformation(
-					getShell(),
-					Messages.JSFLibrariesPreferencePage_CannotModifyPluginProvidedTitle,
-					Messages.JSFLibrariesPreferencePage_CannotModifyPluginProvidedMessage);
-			return;
-		}
-		IWorkbenchWizard wizard = new JSFLibraryWizard();
-		wizard.init(wb, getStructuredElement(element));
-		WizardDialog dialog = new WizardDialog(wb.getActiveWorkbenchWindow().getShell(), wizard);
-		int ret = dialog.open();
-		if (ret == Window.OK){
-			tv.refresh();
-		}
-	}
-	
-	private IStructuredSelection getStructuredElement(Object element) {
-		if (element instanceof TreeItem){
-			Object item = ((TreeItem)element).getData();
-			if (item instanceof ArchiveFile){
-				JSFLibrary parent = ((ArchiveFile)item).getJSFLibrary();
-				return new StructuredSelection(parent);
-			} else if (item instanceof JSFLibrary) {
-				return new StructuredSelection(item);
-			}
-		}
-		return null;
-	}
-
-	private boolean isPluginProvidedJSFLibrary(Object treeElement){
-		if (treeElement instanceof TreeItem){
-			Object item = ((TreeItem)treeElement).getData();
-			if (item instanceof PluginProvidedJSFLibrary){
-				return true;
-			} else if (item instanceof ArchiveFile) {
-				return (((ArchiveFile)item).getJSFLibrary() instanceof PluginProvidedJSFLibrary);
-			}
-		}
-		return false;
-	}
-
-	private class TreeLabelProvider implements ILabelProvider {
-		Image libImg;
-		Image jarImg;
-
-		TreeLabelProvider(){
-			if (jarImg == null){
-				ImageDescriptor jarImgDesc = JSFUiPlugin.getImageDescriptor("obj16/jar_obj.gif"); //$NON-NLS-1$
-				jarImg = jarImgDesc.createImage();
-			}
-			if (libImg == null){
-				ImageDescriptor libImgDesc = JSFUiPlugin.getImageDescriptor("obj16/library_obj.gif"); //$NON-NLS-1$
-				libImg = libImgDesc.createImage();
-			}
-		}
-		
-		public Image getImage(Object element) {
-			if (element instanceof JSFLibrary)
-				return libImg;
-			else
-				return jarImg;
-		}
-
-		public String getText(Object element) {
-			StringBuffer labelBuf = new StringBuffer();
-			if (element instanceof JSFLibrary) {
-				JSFLibrary lib = (JSFLibrary)element;
-				labelBuf.append(lib.getName());
-				if (lib.isImplementation()) {
-					labelBuf.append(" [implementation"); //$NON-NLS-1$
-					if (lib == JSFCorePlugin.getDefault().getJSFLibraryRegistry().getDefaultImplementation()) {
-						labelBuf.append(" - default"); //$NON-NLS-1$
-					}
-					labelBuf.append("]"); //$NON-NLS-1$
-				}
-			}
-			if (element instanceof ArchiveFile) {
-				ArchiveFile jar = (ArchiveFile)element;
-				labelBuf.append(jar.getName());
-				if (!jar.exists())
-					labelBuf.append("[missing]"); //$NON-NLS-1$
-				labelBuf.append(" - ").append(((ArchiveFile)element).getSourceLocation()); //$NON-NLS-1$
-			}
-			return labelBuf.toString();
-		}
-
-		public void addListener(ILabelProviderListener listener) {
-		}
-
-		public void dispose() {
-			if (libImg != null){
-				libImg.dispose();
-			}			
-			if (jarImg != null){
-				jarImg.dispose();
-			}		
-		}
-
-		public boolean isLabelProperty(Object element, String property) {
-			return false;
-		}
-
-		public void removeListener(ILabelProviderListener listener) {
-		}
-	}
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.ui/src/org/eclipse/jst/jsf/ui/internal/classpath/JSFLibraryContainerWizardPage.java b/jsf/plugins/org.eclipse.jst.jsf.ui/src/org/eclipse/jst/jsf/ui/internal/classpath/JSFLibraryContainerWizardPage.java
deleted file mode 100644
index 3ba4844..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.ui/src/org/eclipse/jst/jsf/ui/internal/classpath/JSFLibraryContainerWizardPage.java
+++ /dev/null
@@ -1,311 +0,0 @@
-/*******************************************************************************
- * 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
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.ui.internal.classpath;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.ui.wizards.IClasspathContainerPage;
-import org.eclipse.jdt.ui.wizards.IClasspathContainerPageExtension;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.CheckStateChangedEvent;
-import org.eclipse.jface.viewers.CheckboxTableViewer;
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.ICheckStateListener;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.jst.jsf.core.internal.JSFCorePlugin;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary;
-import org.eclipse.jst.jsf.ui.internal.JSFUiPlugin;
-import org.eclipse.jst.jsf.ui.internal.Messages;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchWizard;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.common.project.facet.core.internal.FacetedProjectNature;
-
-/**
- * Provides a classpath container wizard page for JSF Libraries.
- * 
- * @author Gerry Kessler - Oracle
- */
-public class JSFLibraryContainerWizardPage extends WizardPage implements
-		IClasspathContainerPage, IClasspathContainerPageExtension{
-
-	private TableViewer lv;
-	private JSFLibrariesTableViewerAdapter lvAdapter;
-	private JSFLibrariesListLabelProvider lvLabelProvider;
-	private ArrayList elements;
-	private boolean isJSFProject = false;		
-
-	public JSFLibraryContainerWizardPage(){
-        super(Messages.JSFLibraryContainerWizardPage_PageName);        
-        setTitle(Messages.JSFLibraryContainerWizardPage_Title);
-        setDescription(Messages.JSFLibraryContainerWizardPage_Description);
-        // TODO: Replace with a custom image.
-        setImageDescriptor( JSFUiPlugin.getImageDescriptor("full/wizban/addlibrary_wiz.gif")); //$NON-NLS-1$
-	}
-
-	public void initialize(IJavaProject project, IClasspathEntry[] currentEntries) {		
-		isJSFProject = false;
-		try {
-			//check for faceted nature
-			//NOTE: use of following constant produces warnings; this was known
-			//but at time of writing no public API was available
-			if (project.getProject().hasNature(FacetedProjectNature.NATURE_ID)){
-				//check for jsf facet
-				IFacetedProject fproj = ProjectFacetsManager.create(project.getProject());
-				Iterator it = fproj.getProjectFacets().iterator();
-				while (it.hasNext()){
-					IProjectFacetVersion facetVersion = (IProjectFacetVersion)it.next();
-					IProjectFacet facet = facetVersion.getProjectFacet();
-					if (facet.getId().equals(JSFCorePlugin.FACET_ID)){
-						isJSFProject = true;
-						return;
-					}
-				}				
-			}
-		} catch (CoreException e) {
-			JSFUiPlugin.log(
-					IStatus.ERROR,
-					Messages.JSFLibraryContainerWizardPage_ErrorInitializing,
-					e);
-		}
-	}
-
-	public boolean finish() {
-		// TODO Create lib containers and verify single implementation selected
-		return true;
-	}
-
-	public boolean isPageComplete() {
-		if (!isJSFProject) {
-			return false;
-		}
-		return isValid();
-	}
-
-	private boolean isValid() {
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jdt.ui.wizards.IClasspathContainerPage#getSelection()
-	 */
-	public IClasspathEntry getSelection() {
-		if (lv.getSelection()!= null){
-		}
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jdt.ui.wizards.IClasspathContainerPage#setSelection(org.eclipse.jdt.core.IClasspathEntry)
-	 */
-	public void setSelection(IClasspathEntry containerEntry) {
-	}
-
-	public void createControl(Composite parent) {
-		//Build UI to display JSF Lib components from registry
-		Composite c = new Composite(parent, SWT.NONE);
-		c.setLayout(new GridLayout(2, false));
-		c.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		//disable wizard if this is not a valid JSF project
-		if (!isJSFProject){
-			Label warning = new Label(c , SWT.NONE);
-			warning.setText(Messages.JSFLibraryContainerWizardPage_WarningNoJSFFacet);
-			setControl(c);			
-			return;
-		}
-
-		Label lblViewer = new Label(c, SWT.NONE);
-		lblViewer.setText(Messages.JSFLibraryContainerWizardPage_JSFLibraries);
-		GridData gd1 = new GridData(GridData.BEGINNING);
-		gd1.horizontalSpan = 2;
-		lblViewer.setLayoutData(gd1);
-
-		lv = createTableViewer(c);
-		lv.getControl().setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		lvAdapter = new JSFLibrariesTableViewerAdapter();
-		lvLabelProvider = new JSFLibrariesListLabelProvider();
-		lv.setContentProvider(lvAdapter);
-		lv.setLabelProvider(lvLabelProvider);
-		lv.addSelectionChangedListener(lvAdapter);
-		lv.addDoubleClickListener(lvAdapter);
-
-		lv.setInput(getJSFLibraries());
-
-//		Composite btnBar = new Composite(c, SWT.NONE);
-//		GridLayout gl = new GridLayout(1, false);
-//		gl.marginHeight = 0;
-//		gl.marginWidth = 0;
-
-		Button addButton = new Button(c, SWT.NONE);
-		addButton.setText(Messages.JSFLibraryContainerWizardPage_Add);
-		addButton.setLayoutData(new GridData(GridData.END | GridData.VERTICAL_ALIGN_BEGINNING));
-		addButton.addSelectionListener(new SelectionAdapter(){
-			public void widgetSelected(SelectionEvent e){
-				openJSFLibraryWizard(null);
-			}
-		});
-
-		setControl(c);
-	}
-
-	private void openJSFLibraryWizard(Object element){
-		IWorkbenchWizard wizard = new JSFLibraryWizard();
-		IWorkbench wb = PlatformUI.getWorkbench();
-		wizard.init(wb, getStructuredElement(element));
-		WizardDialog dialog = new WizardDialog(wb.getActiveWorkbenchWindow().getShell(), wizard);
-		int ret = dialog.open();
-		if (ret == Window.OK){
-			//FIXME: select returned object
-			lv.refresh();
-		}
-	}
-	
-	private IStructuredSelection getStructuredElement(Object element) {
-		if (element != null  && element instanceof IStructuredSelection){
-			//FIXME:
-//			IStructuredSelection firstelement = (IStructuredSelection)((IStructuredSelection)element).getFirstElement();
-//			return new StructuredSelection(firstelement);
-		}
-		return null;
-	}
-
-	private TableViewer createTableViewer(Composite parent) {
-		Table table= new Table(parent, SWT.CHECK | SWT.BORDER | SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
-		table.setFont(parent.getFont());
-		CheckboxTableViewer tableViewer= new CheckboxTableViewer(table);
-		tableViewer.addCheckStateListener(new ICheckStateListener() {
-			public void checkStateChanged(CheckStateChangedEvent e) {
-				validate();
-			}
-		});
-		return tableViewer;
-	}
-
-	private Object getJSFLibraries() {
-		elements = new ArrayList(10);
-		elements.addAll(JSFCorePlugin.getDefault().getJSFLibraryRegistry().getAllJSFLibraries());
-		return elements;
-	}
-
-	private class JSFLibrariesTableViewerAdapter implements IStructuredContentProvider, ISelectionChangedListener, IDoubleClickListener {
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-			//should never happen
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-		 */
-		public void dispose() {
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return elements.toArray();
-		}		
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
-		 */
-		public void selectionChanged(SelectionChangedEvent event) {
-			doListSelected(event);
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IDoubleClickListener#doubleClick(org.eclipse.jface.viewers.DoubleClickEvent)
-		 */
-		public void doubleClick(DoubleClickEvent event) {
-			doDoubleClick(event);
-		}
-	}
-	
-	private class JSFLibrariesListLabelProvider implements ILabelProvider{		
-		Image libImg;
-		public Image getImage(Object element) {
-			if (libImg == null){
-				ImageDescriptor libImgDesc = JSFUiPlugin.getImageDescriptor("obj16/library_obj.gif"); //$NON-NLS-1$
-				libImg = libImgDesc.createImage();
-			}
-			return libImg;
-		}
-
-		public String getText(Object element) {
-			if (element instanceof JSFLibrary) {
-				JSFLibrary lib = (JSFLibrary)element;
-				if (lib.isImplementation()) {
-					return lib.getName() + " [implementation]"; //$NON-NLS-1$
-				} else {
-					return lib.getName();
-				}
-			}
-			return null;
-		}
-
-		public void dispose() {
-			if (libImg != null)
-				libImg.dispose();
-		}
-
-		public void addListener(ILabelProviderListener listener) {			
-		}
-
-		public boolean isLabelProperty(Object element, String property) {
-			return false;
-		}
-
-		public void removeListener(ILabelProviderListener listener) {
-		}
-	}
-	
-	private void validate() {
-	}
-
-	private void doListSelected(SelectionChangedEvent event) {
-	}
-
-	private void doDoubleClick(DoubleClickEvent event) {
-		openJSFLibraryWizard(lv.getSelection());
-	}
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.ui/src/org/eclipse/jst/jsf/ui/internal/classpath/JSFLibraryWizard.java b/jsf/plugins/org.eclipse.jst.jsf.ui/src/org/eclipse/jst/jsf/ui/internal/classpath/JSFLibraryWizard.java
deleted file mode 100644
index f61e73b..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.ui/src/org/eclipse/jst/jsf/ui/internal/classpath/JSFLibraryWizard.java
+++ /dev/null
@@ -1,471 +0,0 @@
-/*******************************************************************************
- * 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
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.ui.internal.classpath;
-
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.jst.jsf.core.internal.JSFCorePlugin;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.ArchiveFile;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistryFactory;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFVersion;
-import org.eclipse.jst.jsf.ui.internal.JSFUiPlugin;
-import org.eclipse.jst.jsf.ui.internal.Messages;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.INewWizard;
-import org.eclipse.ui.IWorkbench;
-
-/**
- * Dialog for creating or editing a JSF Library or Implementation.
- * <br>
- * If the selection passed in init is not null then the item will be edit mode.
- * 
- * @author Gerry Kessler - Oracle
- */
-public class JSFLibraryWizard extends Wizard implements INewWizard {
-	private Text txtName;
-	private Label lblName;
-	private CCombo cboVersions;
-	private Label lblVersions;
-	private Button chkDeploy;
-	private Button chkImpl;
-	private Composite btnBar;
-	private Button btnAdd;
-	private Button btnRemove;
-	private TableViewer jars;
-
-	private boolean isNew = false;
-	private boolean modified = false;
-	private boolean implsOnly = false;
-
-	private JSFLibrary curLibrary;
-	private JSFLibrary workingCopyLibrary;
-
-	private JSFLibraryWizardPage page;
-
-	private static final String DESCRIPTION = Messages.JSFLibraryWizard_DESCRIPTION;
-	private static final String IMPLS_ONLY_DESC = Messages.JSFLibraryWizard_IMPLS_ONLY_DESC;
-
-	public JSFLibraryWizard(boolean b) {
-		super();
-		implsOnly = b;
-	}
-
-	public JSFLibraryWizard() {
-		super();
-	}
-
-	public void init(IWorkbench workbench, IStructuredSelection selection) {
-		if (selection != null
-				&& selection.getFirstElement() instanceof JSFLibrary) {
-			curLibrary = (JSFLibrary) selection.getFirstElement();
-			workingCopyLibrary = curLibrary.getWorkingCopy();
-		} else {
-			isNew = true;
-			workingCopyLibrary = JSFLibraryRegistryFactory.eINSTANCE.createJSFLibrary();
-		}
-		if (implsOnly) {
-			setWindowTitle(Messages.JSFLibraryWizard_CreateImplementation);
-		} else {
-			setWindowTitle(isNew ? Messages.JSFLibraryWizard_CreateJSFLibrary : Messages.JSFLibraryWizard_EditJSFLibrary);
-		}
-	}
-
-	public boolean performFinish() {
-		final String name = txtName.getText().trim();
-		final boolean isDeployed = chkDeploy.getSelection();
-		final boolean isImplementation = chkImpl.getSelection();
-
-		workingCopyLibrary.setName(name);
-		if (cboVersions.getSelectionIndex() >= 0) {
-			JSFVersion ver = (JSFVersion) JSFVersion.VALUES.get(cboVersions
-					.getSelectionIndex());
-			workingCopyLibrary.setJSFVersion(ver);
-		}
-		workingCopyLibrary.setDeployed(isDeployed);
-		workingCopyLibrary.setImplementation(isImplementation);
-		if (isNew){
-			JSFCorePlugin.getDefault().getJSFLibraryRegistry().addJSFLibrary(workingCopyLibrary);
-		}
-		else {
-			curLibrary.updateValues(workingCopyLibrary);
-		}
-		JSFCorePlugin.getDefault().saveJSFLibraryRegistry();
-		return true;
-	}
-
-	public void addPages() {
-		page = new JSFLibraryWizardPage(Messages.JSFLibraryWizard_JSFLibrary);
-		super.addPage(page);
-		page.setWizard(this);
-	}
-
-	public JSFLibrary getJSFLibrary() {
-		return workingCopyLibrary;
-	}
-
-	private class JSFLibraryWizardPage extends WizardPage implements
-			ModifyListener, SelectionListener {
-
-		private boolean initing;
-
-		protected JSFLibraryWizardPage(String pageName) {
-			super(pageName);
-			setDescription(implsOnly ? IMPLS_ONLY_DESC : DESCRIPTION);
-			setTitle(Messages.JSFLibraryWizard_JSFLibrary);
-		}
-
-		public boolean isPageComplete() {
-			if (modified == false) {
-				return false;
-			}
-			return super.isPageComplete();
-		}
-
-		public void createControl(Composite parent) {
-			initing = true;
-			initializeDialogUnits(parent);
-
-			Composite c = new Composite(parent, SWT.NONE);
-			c.setLayout(new GridLayout(2, false));
-			c.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-			lblName = new Label(c, SWT.NONE);
-			lblName.setText(Messages.JSFLibraryWizard_LibraryName);
-			lblName.setLayoutData(new GridData(GridData.BEGINNING));
-
-			txtName = new Text(c, SWT.BORDER);
-			txtName.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-			txtName.addModifyListener(this);
-
-			lblVersions = new Label(c, SWT.NONE);
-			lblVersions.setText(Messages.JSFLibraryWizard_VersionSupported);
-
-			cboVersions = new CCombo(c, SWT.SINGLE | SWT.READ_ONLY | SWT.BORDER);
-			cboVersions.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-			cboVersions.addModifyListener(this);
-
-			Group jarsComp = new Group(c, SWT.NONE);
-			jarsComp.setText(Messages.JSFLibraryWizard_LibraryJars);
-			GridLayout gl1 = new GridLayout(2, false);
-			jarsComp.setLayout(gl1);
-			GridData gd2 = new GridData(GridData.FILL_HORIZONTAL
-					| GridData.FILL_VERTICAL);
-			gd2.horizontalSpan = 2;
-			jarsComp.setLayoutData(gd2);
-
-			createJarsViewer(jarsComp);
-
-			createButtons(jarsComp);
-
-			chkImpl = new Button(c, SWT.CHECK);
-			chkImpl.setText(Messages.JSFLibraryWizard_IsJSFImplementation);
-			GridData gd3 = new GridData();
-			gd3.horizontalSpan = 2;
-			chkImpl.setLayoutData(gd3);
-			chkImpl.addSelectionListener(this);
-
-			chkDeploy = new Button(c, SWT.CHECK);
-			chkDeploy.setText(Messages.JSFLibraryWizard_DeployJars);
-			GridData gd4 = new GridData();
-			gd4.horizontalSpan = 2;
-			chkDeploy.setLayoutData(gd4);
-			chkDeploy.addSelectionListener(this);
-			chkDeploy.setVisible(false);
-
-			loadVersions();
-
-			if (!isNew) {
-				txtName.setText(workingCopyLibrary.getName());
-				cboVersions.setText(workingCopyLibrary.getJSFVersion().getName());
-				chkDeploy.setSelection(workingCopyLibrary.isDeployed());
-				chkImpl.setSelection(workingCopyLibrary.isImplementation());
-			}
-
-			if (implsOnly) {
-				chkImpl.setSelection(true);
-				chkImpl.setEnabled(false);
-			}
-
-			jars.setInput(workingCopyLibrary);
-
-			initing = false;
-			setControl(c);
-
-			txtName.setFocus();
-			setPageComplete(false);
-		}
-
-		private void createJarsViewer(Group jarsComp) {
-			jars = new TableViewer(jarsComp, SWT.BORDER | SWT.MULTI);
-			jars.setContentProvider(new IStructuredContentProvider() {
-				public Object[] getElements(Object inputElement) {
-					if (inputElement instanceof JSFLibrary)
-						return ((JSFLibrary) inputElement).getArchiveFiles()
-								.toArray();
-					return new Object[0];
-				}
-
-				public void dispose() {
-				}
-
-				public void inputChanged(Viewer viewer, Object oldInput,
-						Object newInput) {
-					// won't happen
-				}
-			});
-			jars.setLabelProvider(new ILabelProvider() {
-				private Image jarImg = null;
-				public Image getImage(Object element) {
-					if (jarImg == null){
-						ImageDescriptor desc = JSFUiPlugin.getImageDescriptor("obj16/jar_obj.gif"); //$NON-NLS-1$
-						jarImg = desc.createImage();
-					}
-					return jarImg;
-				}
-
-				public String getText(Object element) {
-					StringBuffer labelBuf = new StringBuffer();
-					if (element instanceof ArchiveFile) {
-						ArchiveFile archive = (ArchiveFile) element;
-						labelBuf.append(archive.getName());	
-						if (!archive.exists())
-							labelBuf.append("[missing]"); //$NON-NLS-1$
-						labelBuf.append(" - ").append(archive.getPath()); //$NON-NLS-1$
-					}
-					return labelBuf.toString();
-				}
-
-				public void addListener(ILabelProviderListener listener) {
-				}
-
-				public void dispose() {
-					if (jarImg != null)
-						jarImg.dispose();
-				}
-
-				public boolean isLabelProperty(Object element, String property) {
-					return false;
-				}
-
-				public void removeListener(ILabelProviderListener listener) {
-				}
-			});
-
-			GridData gd = new GridData(GridData.FILL_BOTH);
-			gd.widthHint = convertWidthInCharsToPixels(30);
-			gd.heightHint = convertHeightInCharsToPixels(10);
-			jars.getControl().setLayoutData(gd);
-		}
-
-		private void updateButtons() {
-			btnRemove.setEnabled(jars.getSelection() != null);
-			// getButton(IDialogConstants.OK_ID).setEnabled(modified);
-		}
-
-		private void createButtons(Composite c) {
-			btnBar = new Composite(c, SWT.NONE);
-			GridLayout gl = new GridLayout(1, false);
-			gl.marginHeight = 0;
-			gl.marginTop = 0;
-			gl.marginWidth = 0;
-			btnBar.setLayout(gl);
-			btnBar.setLayoutData(new GridData(GridData.END));
-
-			btnAdd = new Button(btnBar, SWT.NONE);
-			btnAdd.setText(Messages.JSFLibraryWizard_Add);
-			btnAdd.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL
-					| GridData.VERTICAL_ALIGN_BEGINNING));
-			btnAdd.addSelectionListener(new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					String cur = null;
-					String[] chosenJars = openExtJarFileDialog(cur);
-					if (chosenJars != null) {
-						for (int i = 0; i < chosenJars.length; i++) {
-							String jar = chosenJars[i];
-							if (!workingCopyLibrary.containsArchiveFile(jar)) {
-								ArchiveFile archive = JSFLibraryRegistryFactory.eINSTANCE
-									.createArchiveFile();
-								archive.setSourceLocation(jar);
-								archive.setRelativeDestLocation("WEB-INF/lib"); //$NON-NLS-1$
-								workingCopyLibrary.getArchiveFiles().add(archive);
-								modified = true;
-							}
-						}
-						jars.refresh();
-						validate();
-					}
-				}
-			});
-
-			btnRemove = new Button(btnBar, SWT.NONE);
-			btnRemove.setText(Messages.JSFLibraryWizard_Remove);
-			btnRemove.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL
-					| GridData.VERTICAL_ALIGN_BEGINNING));
-			btnRemove.addSelectionListener(new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					if (jars.getSelection() instanceof StructuredSelection){
-						StructuredSelection objs = (StructuredSelection)jars.getSelection();
-						if (objs != null){
-							Iterator it = objs.iterator();
-							 while (it.hasNext()){
-								 Object obj = it.next();
-								 ArchiveFile jar = (ArchiveFile)obj;
-								 workingCopyLibrary.getArchiveFiles().remove(jar);
-								 modified = true;
-							 }
-						}
-						jars.refresh();
-						validate();
-					}
-				}
-			});
-		}
-
-		private void loadVersions() {
-			cboVersions.removeAll();
-			Iterator it = JSFVersion.VALUES.iterator();
-			while (it.hasNext()) {
-				JSFVersion ver = (JSFVersion) it.next();
-				cboVersions.add(ver.getName());
-			}
-		}
-
-		private String[] openExtJarFileDialog(String existing) {
-			String title = Messages.JSFLibraryWizard_ExtJarFileDialogTitle;
-
-			FileDialog dialog = new FileDialog(getShell(),
-					existing == null ? SWT.MULTI : SWT.SINGLE);
-			dialog.setText(title);
-			dialog.setFilterExtensions(new String[] { "*.jar;*.zip" }); //$NON-NLS-1$
-			// FIXME: remember and use last path chosen??
-			String filterPath = ResourcesPlugin.getWorkspace().getRoot()
-					.getFullPath().toString();
-			dialog.setFilterPath(filterPath);
-			// if (existing != null) {
-			// dialog.setFileName(existing.getPath().lastSegment());
-			// }
-
-			String res = dialog.open();
-			if (res == null) {
-				return null;
-			}
-			String[] fileNames = dialog.getFileNames();
-			String[] elems = new String[fileNames.length];
-			IPath file = new Path(res);
-			IPath apath = file.removeLastSegments(1);
-			for (int i = 0; i < fileNames.length; i++) {
-				elems[i] = apath.append(fileNames[i]).toString();
-			}
-			return elems;
-		}	
-
-		public void modifyText(ModifyEvent e) {
-			modified = true;
-			validate();
-			updateButtons();
-		}
-
-		public void widgetSelected(SelectionEvent e) {
-			modified = true;
-			validate();
-			updateButtons();
-		}
-
-		public void widgetDefaultSelected(SelectionEvent e) {
-		}
-
-		private void validate() {
-			if (initing)
-				return;
-			setErrorMessage(null);
-			setPageComplete(true);
-			if (!validateName() || !validateJars() || !validateVersion()) {
-				setPageComplete(false);
-			}
-		}
-
-		private boolean validateJars() {
-			if (getJSFLibrary().getArchiveFiles().isEmpty()) {
-				setErrorMessage(Messages.JSFLibraryWizard_ValidateNoJars);
-				return false;
-			}
-			return true;
-		}
-
-		private boolean validateVersion() {
-			//FIXME: why isn't selection indesx correct???
-//			if (cboVersions.getSelectionIndex() < 0) {
-//				setErrorMessage("Choose the maximum JSF version supported if known.");
-//				return false;
-//			}
-			return true;
-		}
-
-		private boolean validateName() {
-			if (txtName.getText() == null
-					|| txtName.getText().trim().equals("")) { //$NON-NLS-1$
-				setErrorMessage(Messages.JSFLibraryWizard_ValidateNoLibraryName);
-				return false;
-			}
-			String aName = txtName.getText().trim();
-			if (isNew || (!isNew && !curLibrary.getName().equals(aName))) {
-				if (isNameInRegistry(JSFCorePlugin.getDefault()
-						.getJSFLibraryRegistry().getAllJSFLibraries(), aName)) {
-					setErrorMessage(Messages.JSFLibraryWizard_ValidateExistingLibraryName);
-					return false;
-				}
-			}
-			return true;
-		}
-
-		private boolean isNameInRegistry(Collection c, String name) {
-			Iterator it = c.iterator();
-			while (it.hasNext()) {
-				JSFLibrary lib = (JSFLibrary) it.next();
-				if (lib.getName().equals(name)) {
-					return true;
-				}
-			}
-			return false;
-		}
-	}
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.ui/src/org/eclipse/jst/jsf/ui/internal/messages.properties b/jsf/plugins/org.eclipse.jst.jsf.ui/src/org/eclipse/jst/jsf/ui/internal/messages.properties
deleted file mode 100644
index 235cf5b..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.ui/src/org/eclipse/jst/jsf/ui/internal/messages.properties
+++ /dev/null
@@ -1,63 +0,0 @@
-###############################################################################
-# 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
-#    Ian Trimble - change key names for use with org.eclipse.osgi.util.NLS
-###############################################################################
-JSFFacetInstallPage_title=JSF Capabilities
-JSFFacetInstallPage_description=Add JSF capabilities to this Web Project
-JSFFacetInstallPage_JSFImplLabel=JSF &Implementation:
-JSFFacetInstallPage_Add1=A&dd...
-JSFFacetInstallPage_Add2=&Add...
-JSFFacetInstallPage_DeployJarsLabel=&Deploy jars to WEB-INF/lib
-JSFFacetInstallPage_JSFConfigLabel=JSF &Configuration File:
-JSFFacetInstallPage_JSFServletNameLabel=JSF &Servlet Name:
-JSFFacetInstallPage_JSFURLMappingLabel=&URL Mapping Patterns:
-JSFFacetInstallPage_PatternDialogTitle=Specify URL Pattern
-JSFFacetInstallPage_PatternDialogDesc=URL Pattern
-JSFFacetInstallPage_Remove=&Remove
-JSFFacetInstallPage_PatternEmptyMsg=Pattern must not be empty
-JSFFacetInstallPage_PatternSpecifiedMsg=Pattern is already specified
-JSFFacetInstallPage_ErrorNoWebAppDataModel=Unable to locate WebApp datamodel
-
-JSFLibrariesPreferencePage_DefinedJSFLibraries=Defined JSF Libraries:
-JSFLibrariesPreferencePage_New=New...
-JSFLibrariesPreferencePage_Edit=Edit...
-JSFLibrariesPreferencePage_Remove=Remove
-JSFLibrariesPreferencePage_CannotRemovePluginProvidedTitle=Cannot Remove
-JSFLibrariesPreferencePage_CannotRemovePluginProvidedMessage=Plugin provided libraries cannot be removed from the registry
-JSFLibrariesPreferencePage_MakeDefault=Make Default
-JSFLibrariesPreferencePage_Description=JSF Libraries contain jars with JSF components and tag libraries.   Some JSF Libaries can be specially marked as implementations so that the WebApp can be executed.
-JSFLibrariesPreferencePage_CannotModifyPluginProvidedTitle=Cannot Modify
-JSFLibrariesPreferencePage_CannotModifyPluginProvidedMessage=Plugin provided libraries cannot be edited
-
-JSFLibraryContainerWizardPage_PageName=Add JSF Library
-JSFLibraryContainerWizardPage_Title=JSF Library
-JSFLibraryContainerWizardPage_Description=Select JavaServer Face Library to add to the classpath
-JSFLibraryContainerWizardPage_WarningNoJSFFacet=JavaServer Face Libraries can only be configured for Dynamic Web projects with the JSF facet installed.
-JSFLibraryContainerWizardPage_JSFLibraries=JSF Libaries:
-JSFLibraryContainerWizardPage_Add=Add...
-JSFLibraryContainerWizardPage_ErrorInitializing=Error during initialization
-
-JSFLibraryWizard_DESCRIPTION=Create a library of jars that make up a JSF component library.
-JSFLibraryWizard_IMPLS_ONLY_DESC=Create a library of jars that make up a JSF implementation library.
-JSFLibraryWizard_CreateImplementation=Create JSF Implementation Library
-JSFLibraryWizard_CreateJSFLibrary=Create JSF Library
-JSFLibraryWizard_EditJSFLibrary=Edit JSF Library
-JSFLibraryWizard_JSFLibrary=JSF Library
-JSFLibraryWizard_LibraryName=Library &Name:
-JSFLibraryWizard_VersionSupported=&Version Supported:
-JSFLibraryWizard_LibraryJars=Library &Jars
-JSFLibraryWizard_IsJSFImplementation=Is JSF &Implementation
-JSFLibraryWizard_DeployJars=&Deploy Jars
-JSFLibraryWizard_Add=&Add...
-JSFLibraryWizard_Remove=&Remove
-JSFLibraryWizard_ExtJarFileDialogTitle=Browse for Jars/Zips
-JSFLibraryWizard_ValidateNoJars=The library must contain at least one jar.
-JSFLibraryWizard_ValidateNoLibraryName=A library name must be supplied.
-JSFLibraryWizard_ValidateExistingLibraryName=A library or implementation by this name already exists.
\ No newline at end of file
diff --git a/jsf/plugins/org.eclipse.jst.jsf.ui/src/org/eclipse/jst/jsf/ui/internal/project/facet/JSFFacetInstallPage.java b/jsf/plugins/org.eclipse.jst.jsf.ui/src/org/eclipse/jst/jsf/ui/internal/project/facet/JSFFacetInstallPage.java
deleted file mode 100644
index 43be62d..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.ui/src/org/eclipse/jst/jsf/ui/internal/project/facet/JSFFacetInstallPage.java
+++ /dev/null
@@ -1,508 +0,0 @@
-/*******************************************************************************
- * 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
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.ui.internal.project.facet;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.jface.dialogs.DialogSettings;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.dialogs.IInputValidator;
-import org.eclipse.jface.dialogs.InputDialog;
-import org.eclipse.jface.viewers.ComboViewer;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.jst.j2ee.project.facet.IJ2EEModuleFacetInstallDataModelProperties;
-import org.eclipse.jst.jsf.core.internal.JSFCorePlugin;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistry;
-import org.eclipse.jst.jsf.core.internal.project.facet.IJSFFacetInstallDataModelProperties;
-import org.eclipse.jst.jsf.ui.internal.JSFUiPlugin;
-import org.eclipse.jst.jsf.ui.internal.Messages;
-import org.eclipse.jst.jsf.ui.internal.classpath.JSFLibraryWizard;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.List;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelProvider;
-import org.eclipse.wst.common.frameworks.datamodel.DataModelEvent;
-import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
-import org.eclipse.wst.common.frameworks.internal.datamodel.ui.DataModelWizardPage;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.ui.IFacetWizardPage;
-import org.eclipse.wst.common.project.facet.ui.IWizardContext;
-
-/**
- * JSF Facet installation wizard page.
- * 
- * @author Gerry Kessler - Oracle
- */
-public class JSFFacetInstallPage extends DataModelWizardPage implements IJSFFacetInstallDataModelProperties, IFacetWizardPage {
-	// UI
-	private Label lblJSFImpl;
-	private ComboViewer cboJSFImplViewer;
-	private Button chkDeployImpl;
-	private Button btnAddJSFImpl;
-	private Label lblJSFConfig;
-	private Text txtJSFConfig;
-	private Label lblJSFServletName;
-	private Text txtJSFServletName;
-	private Label lblJSFServletURLPatterns;
-	private List lstJSFServletURLPatterns;
-	private Button btnAddPattern;
-	private Button btnRemovePattern;
-
-	private IDialogSettings dialogSettings;
-	private IDataModel webAppDataModel;
-	private static final String SETTINGS_ROOT = JSFUiPlugin.PLUGIN_ID
-			+ ".jsfFacetInstall"; //$NON-NLS-1$
-	private static final String SETTINGS_CONFIG = "configPath"; //$NON-NLS-1$
-	private static final String SETTINGS_SERVLET = "servletName"; //$NON-NLS-1$
-	private static final String SETTINGS_URL_MAPPINGS = "urlMappings"; //$NON-NLS-1$
-	private static final String SETTINGS_URL_PATTERN = "pattern"; //$NON-NLS-1$
-	private static final String SETTINGS_DEPLOY_IMPL = "deployImplementation"; //$NON-NLS-1$
-
-	/**
-	 * Zero argument constructor
-	 */
-	public JSFFacetInstallPage() {
-		//FIXME: following WebFacetInstallPage pattern which will be fixed at somepoint
-    	super(DataModelFactory.createDataModel(new AbstractDataModelProvider(){}), "jsf.facet.install.page"); //$NON-NLS-1$
-		setTitle(Messages.JSFFacetInstallPage_title);
-		setDescription(Messages.JSFFacetInstallPage_description);
-		dialogSettings = JSFUiPlugin.getDefault().getDialogSettings();
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.common.frameworks.internal.datamodel.ui.DataModelWizardPage#createTopLevelComposite(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Composite createTopLevelComposite (final Composite parent) {
-		initializeDialogUnits(parent);
-		final Composite composite = new Composite(parent, SWT.NONE);
-		composite.setLayout(new GridLayout(3, false));
-
-		lblJSFImpl = new Label(composite, SWT.None);
-		lblJSFImpl.setText(Messages.JSFFacetInstallPage_JSFImplLabel);
-		lblJSFImpl.setLayoutData(new GridData(GridData.BEGINNING));
-
-		cboJSFImplViewer = new ComboViewer(composite, SWT.BORDER | SWT.READ_ONLY);
-		cboJSFImplViewer.getCombo().setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		cboJSFImplViewer.setContentProvider(new IStructuredContentProvider(){
-			private java.util.List jsfImpls = new ArrayList(Collections.EMPTY_LIST);
-
-			public void dispose() {
-			}
-
-			public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-				if (newInput == null)
-					jsfImpls = Collections.EMPTY_LIST;
-				else {
-					jsfImpls.clear();
-					jsfImpls.addAll((EList)newInput);
-				}
-			}			
-			public Object[] getElements(Object inputElement) {				
-				return jsfImpls.toArray(); 
-			}			
-		});
-		cboJSFImplViewer.setLabelProvider(new ILabelProvider(){
-			private JSFLibrary defaultImpl = null;
-
-			public String getText(Object element) {
-				if (element instanceof JSFLibrary){
-					StringBuffer nameBuf = new StringBuffer(((JSFLibrary)element).getName());
-					if (((JSFLibrary)element) == getDefaultImpl())
-						nameBuf.append(" ").append(JSFLibraryRegistry.DEFAULT_IMPL_LABEL); //$NON-NLS-1$
-					return nameBuf.toString() ;
-				}
-				return null;
-			}
-
-			private JSFLibrary getDefaultImpl() {
-				if (defaultImpl == null){
-					defaultImpl = JSFCorePlugin.getDefault().getJSFLibraryRegistry().getDefaultImplementation();
-				}
-				return defaultImpl;
-			}
-
-			public Image getImage(Object element) {return null;}
-			public void addListener(ILabelProviderListener listener) {}
-			public void dispose() {}
-			public boolean isLabelProperty(Object element, String property) {return false;}
-			public void removeListener(ILabelProviderListener listener) {}			
-		});
-
-		btnAddJSFImpl = new Button(composite, SWT.COMMAND);
-		btnAddJSFImpl.setText(Messages.JSFFacetInstallPage_Add1);
-		btnAddJSFImpl.setLayoutData(new GridData(GridData.END));
-		btnAddJSFImpl.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				JSFLibraryWizard wizard = new JSFLibraryWizard(true);
-				IWorkbench wb = PlatformUI.getWorkbench();
-				wizard.init(wb, null);
-				WizardDialog dialog = new WizardDialog(wb
-						.getActiveWorkbenchWindow().getShell(), wizard);
-				int ret = dialog.open();
-				if (ret == Window.OK) {
-					loadJSFImplList();
-					//select the new item
-					cboJSFImplViewer.setSelection(new StructuredSelection(wizard.getJSFLibrary()), true);
-//					addItemToList(wizard.getJSFLibrary().getName(), true);
-					validatePage();
-				}
-			}
-		});
-
-		Label lblSpacer = new Label(composite, SWT.NONE);
-		lblSpacer.setLayoutData(new GridData(GridData.BEGINNING));
-
-		chkDeployImpl = new Button(composite, SWT.CHECK);
-		chkDeployImpl.setText(Messages.JSFFacetInstallPage_DeployJarsLabel);
-		GridData gdd = new GridData(GridData.FILL_HORIZONTAL);
-		gdd.horizontalSpan = 2;
-		chkDeployImpl.setLayoutData(gdd);
-
-		lblJSFConfig = new Label(composite, SWT.NONE);
-		lblJSFConfig.setText(Messages.JSFFacetInstallPage_JSFConfigLabel);
-		lblJSFConfig.setLayoutData(new GridData(GridData.BEGINNING));
-
-		txtJSFConfig = new Text(composite, SWT.BORDER);
-		// txtJSFConfig.setText(config.getDefaultJSFConfigPath());
-		GridData gd1 = new GridData(GridData.FILL_HORIZONTAL);
-		gd1.horizontalSpan = 2;
-		txtJSFConfig.setLayoutData(gd1);
-
-		lblJSFServletName = new Label(composite, SWT.NONE);
-		lblJSFServletName.setText(Messages.JSFFacetInstallPage_JSFServletNameLabel);
-		lblJSFServletName.setLayoutData(new GridData(GridData.BEGINNING));
-
-		txtJSFServletName = new Text(composite, SWT.BORDER);
-		// txtJSFServletName.setText(config.getDefaultJSFServletName());
-		GridData gd2 = new GridData(GridData.FILL_HORIZONTAL);
-		gd2.horizontalSpan = 2;
-		txtJSFServletName.setLayoutData(gd2);
-
-		lblJSFServletURLPatterns = new Label(composite, SWT.NULL);
-		lblJSFServletURLPatterns.setText(Messages.JSFFacetInstallPage_JSFURLMappingLabel);
-		lblJSFServletURLPatterns.setLayoutData(new GridData(GridData.BEGINNING
-				| GridData.VERTICAL_ALIGN_BEGINNING));
-		lstJSFServletURLPatterns = new List(composite, SWT.BORDER);
-		GridData gd3 = new GridData(GridData.FILL_HORIZONTAL);
-		gd3.heightHint = convertHeightInCharsToPixels(10);
-		lstJSFServletURLPatterns.setLayoutData(gd3);
-		lstJSFServletURLPatterns.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				btnRemovePattern.setEnabled(lstJSFServletURLPatterns
-						.getSelectionCount() > 0);
-			}
-		});
-
-		Composite btnComposite = new Composite(composite, SWT.NONE);
-		GridLayout gl = new GridLayout(1, false);
-		// gl.marginBottom = 0;
-		// gl.marginTop = 0;
-		// gl.marginRight = 0;
-		gl.marginLeft = 0;
-		btnComposite.setLayout(gl);
-		btnComposite.setLayoutData(new GridData(GridData.END
-				| GridData.VERTICAL_ALIGN_FILL));
-
-		btnAddPattern = new Button(btnComposite, SWT.NONE);
-		btnAddPattern.setText(Messages.JSFFacetInstallPage_Add2);
-		btnAddPattern.setLayoutData(new GridData(GridData.FILL_HORIZONTAL
-				| GridData.VERTICAL_ALIGN_BEGINNING));
-		btnAddPattern.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				InputDialog dialog = new InputDialog(
-						getShell(),
-						Messages.JSFFacetInstallPage_PatternDialogTitle,
-						Messages.JSFFacetInstallPage_PatternDialogDesc,
-						null, new IInputValidator() {
-
-							public String isValid(String newText) {
-								return isValidPattern(newText);
-							}
-
-						});
-				dialog.open();
-				if (dialog.getReturnCode() == Window.OK) {
-					addItemToList(dialog.getValue(), true);
-				}
-			}
-		});
-
-		btnRemovePattern = new Button(btnComposite, SWT.NONE);
-		btnRemovePattern.setText(Messages.JSFFacetInstallPage_Remove);
-		btnRemovePattern.setLayoutData(new GridData(GridData.FILL_HORIZONTAL
-				| GridData.VERTICAL_ALIGN_BEGINNING));
-		btnRemovePattern.setEnabled(false);
-		btnRemovePattern.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				removeItemFromList(lstJSFServletURLPatterns.getSelection());
-				btnRemovePattern.setEnabled(false);
-			}
-		});
-
-		loadJSFImplList();
-		addModificationListeners();
-
-		return composite;
-	}
-
-	private void initializeValues() {
-		IDialogSettings root = dialogSettings.getSection(SETTINGS_ROOT);
-
-		JSFLibrary impl = (JSFLibrary)model.getDefaultProperty(IJSFFacetInstallDataModelProperties.IMPLEMENTATION);
-		if (impl != null){
-			cboJSFImplViewer.setSelection(new StructuredSelection(impl), true);
-		} else {
-			cboJSFImplViewer.setSelection(StructuredSelection.EMPTY);
-		}
-
-		boolean deploy = ((Boolean)model.getDefaultProperty(IJSFFacetInstallDataModelProperties.DEPLOY_IMPLEMENTATION)).booleanValue();
-		String deployStr = null;
-		if (root != null)
-			deployStr = root.get(SETTINGS_DEPLOY_IMPL);
-		if (deployStr != null && !deployStr.equals("")) { //$NON-NLS-1$
-			deploy = Boolean.valueOf(deployStr).booleanValue();
-		}
-		chkDeployImpl.setSelection(deploy);
-
-		String conf = null;
-		if (root != null)
-			conf = root.get(SETTINGS_CONFIG);
-		if (conf == null || conf.equals("")) { //$NON-NLS-1$
-			conf = (String)model.getDefaultProperty(IJSFFacetInstallDataModelProperties.CONFIG_PATH);
-		}
-		txtJSFConfig.setText(conf);
-
-		String servletName = null;
-		if (root != null)
-			servletName = root.get(SETTINGS_SERVLET);
-		if (servletName == null || servletName.equals("")) { //$NON-NLS-1$
-			servletName = (String)model.getDefaultProperty(IJSFFacetInstallDataModelProperties.SERVLET_NAME);
-		}
-		txtJSFServletName.setText(servletName);
-
-		loadURLMappingPatterns(root);
-	}
-
-	private void saveSettings() {
-		DialogSettings root = new DialogSettings(SETTINGS_ROOT);
-		dialogSettings.addSection(root);
-
-		root.put(SETTINGS_DEPLOY_IMPL, String.valueOf(getDeployJSFImpl()));
-		root.put(SETTINGS_CONFIG, getJSFConfig());
-		root.put(SETTINGS_SERVLET, getJSFServletName());
-		DialogSettings mappings = new DialogSettings(SETTINGS_URL_MAPPINGS);
-		root.addSection(mappings);
-		mappings.put(SETTINGS_URL_PATTERN, getJSFPatterns());
-	}
-
-	private boolean getDeployJSFImpl() {
-		return chkDeployImpl.getSelection();
-	}
-
-	private String getJSFConfig() {
-		return txtJSFConfig.getText().trim();
-	}
-
-	private String getJSFServletName() {
-		return txtJSFServletName.getText().trim();
-	}
-
-	private String[] getJSFPatterns() {
-		return lstJSFServletURLPatterns.getItems();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.common.project.facet.ui.IFacetWizardPage#setConfig(java.lang.Object)
-	 */
-	public void setConfig(Object config) {
-    	model.removeListener(this);
-    	synchHelper.dispose();
-    	
-        model = (IDataModel) config;
-        model.addListener(this);
-		synchHelper = initializeSynchHelper(model);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.common.project.facet.ui.IFacetWizardPage#transferStateToConfig()
-	 */
-	public void transferStateToConfig() {
-		saveSettings(); //convenient place for this.  don't want to save if user cancelled.
-		//do nothing else now.  being handled by synchHelper
-//		config.setProperty(IJSFFacetInstallDataModelProperties.IMPLEMENTATION, getJSFImpl());
-//		config.setStringProperty(IJSFFacetInstallDataModelProperties.CONFIG_PATH, getJSFConfig());
-//		config.setStringProperty(IJSFFacetInstallDataModelProperties.SERVLET_NAME, getJSFServletName());
-//		config.setProperty(IJSFFacetInstallDataModelProperties.SERVLET_URL_PATTERNS, getJSFPatterns());
-	}
-
-	private void addModificationListeners() {
-//		119330 - enhancement request for ComboViewer support.  Manually update model for now
-		addJSFImplComboListeners();
-//		synchHelper.synchComboViewer(cboJSFImplViewer, IMPLEMENTATION, null);
-		synchHelper.synchText(txtJSFConfig, CONFIG_PATH, null);
-		synchHelper.synchText(txtJSFServletName, SERVLET_NAME, null);
-		synchHelper.synchCheckbox(chkDeployImpl, DEPLOY_IMPLEMENTATION, null);
-//		Until 119321 is fixed, need to comment out below and handle model updates 'manually'.  
-//		This is being done on Add and Remove, currently
-//		synchHelper.synchList(lstJSFServletURLPatterns, SERVLET_URL_PATTERNS, null);
-	}
-
-	private void addJSFImplComboListeners() {
-		cboJSFImplViewer.addSelectionChangedListener(new ISelectionChangedListener(){
-			public void selectionChanged(SelectionChangedEvent event) {
-				if (cboJSFImplViewer.getSelection() != null  && cboJSFImplViewer.getSelection() instanceof StructuredSelection){
-					StructuredSelection sel = (StructuredSelection)cboJSFImplViewer.getSelection();
-					if (sel.getFirstElement() != null){
-						JSFLibrary lib = (JSFLibrary)sel.getFirstElement();
-						model.setProperty(IJSFFacetInstallDataModelProperties.IMPLEMENTATION, lib);
-						return;
-					}
-				}
-				model.setProperty(IJSFFacetInstallDataModelProperties.IMPLEMENTATION, null );
-			}			
-		});
-	}
-
-	private String isValidPattern(String value) {
-		if (value == null || value.trim().equals(""))  //$NON-NLS-1$
-			return Messages.JSFFacetInstallPage_PatternEmptyMsg;
-		if (lstJSFServletURLPatterns.indexOf(value) >= 0)
-			return Messages.JSFFacetInstallPage_PatternSpecifiedMsg;
-
-		return null;
-	}
-
-	private void loadURLMappingPatterns(IDialogSettings root) {
-		lstJSFServletURLPatterns.removeAll();
-		IDialogSettings mappings = null;
-		if (root != null)
-			mappings = root.getSection(SETTINGS_URL_MAPPINGS);
-		String[] patterns = null;
-		if (mappings != null)
-			patterns = mappings.getArray(SETTINGS_URL_PATTERN);
-
-		if (patterns == null || patterns.length == 0) {
-			patterns = (String[])model.getDefaultProperty(IJSFFacetInstallDataModelProperties.SERVLET_URL_PATTERNS);
-		}
-		for (int i = 0; i < patterns.length; i++) {
-			addItemToList(patterns[i], false);
-		}
-	}
-
-	private void addItemToList(String pattern, boolean selectMe) {
-		lstJSFServletURLPatterns.add(pattern == null ? "" : pattern); //$NON-NLS-1$
-		if (pattern == null && selectMe)
-			lstJSFServletURLPatterns.setSelection(lstJSFServletURLPatterns
-					.getItemCount() - 1);
-//		When 119321 is fixed - remove code below
-		updateModelForURLPattern();
-	}
-
-	private void removeItemFromList(String[] selection) {
-		for (int i = 0; i < selection.length; i++) {
-			String sel = selection[i];
-			lstJSFServletURLPatterns.remove(sel);
-		}
-//		When 119321 is fixed - remove code below 
-		updateModelForURLPattern();
-	}
-
-	private void updateModelForURLPattern() {
-		model.setProperty(IJSFFacetInstallDataModelProperties.SERVLET_URL_PATTERNS, lstJSFServletURLPatterns.getItems());
-	}
-
-	private void loadJSFImplList() {
-		cboJSFImplViewer.setInput(JSFCorePlugin.getDefault().getJSFLibraryRegistry()
-			.getImplJSFLibraries());		
-	}
-
-	protected String[] getValidationPropertyNames() {
-		return new String[]{IMPLEMENTATION, DEPLOY_IMPLEMENTATION, CONFIG_PATH, SERVLET_NAME};
-	}
-
-	public void setWizardContext(IWizardContext context) {
-		//hook into web datamodel if new project wizard.
-		Iterator it = context.getSelectedProjectFacets().iterator();
-		IProjectFacetVersion webFacetVersion = null;
-		while (it.hasNext()){
-			//find Web facet
-			IProjectFacetVersion pfv = (IProjectFacetVersion)it.next();
-			if (pfv.getProjectFacet().getId().equals("jst.web")){ //$NON-NLS-1$
-				webFacetVersion = pfv;
-				break;
-			}
-		}
-		if (webFacetVersion != null){
-			try {
-				webAppDataModel = (IDataModel)context.getConfig(webFacetVersion, IFacetedProject.Action.Type.INSTALL, 
-						context.getProjectName());
-				if (webAppDataModel != null){
-					webAppDataModel.addListener(this);
-				}
-			} catch (CoreException e) {
-				JSFUiPlugin.log(
-						IStatus.ERROR,
-						Messages.JSFFacetInstallPage_ErrorNoWebAppDataModel,
-						e);
-			}
-		}
-	}
-
-	public void propertyChanged(DataModelEvent event) {
-		if (webAppDataModel != null){
-			String propertyName = event.getPropertyName();
-			if (propertyName.equals(IJ2EEModuleFacetInstallDataModelProperties.CONFIG_FOLDER)){
-				model.setStringProperty(WEBCONTENT_DIR, event.getProperty().toString());
-			}
-		}
-		super.propertyChanged(event);
-	}
-
-	public void dispose() {
-		if (webAppDataModel != null)
-			webAppDataModel.removeListener(this);
-		super.dispose();
-	}
-	protected void restoreDefaultSettings() {
-		initializeValues();
-	}
-}