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 d955aa8..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,37 +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-AutoStart: 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.contentmodel.annotation,
- 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.contentmodel.annotation,
- 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 2a81b95..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/plugin.xml
+++ /dev/null
@@ -1,74 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-   <extension-point id="jsfLibraries" name="jsfLibraries" schema="schema/jsfLibraries.exsd"/>
-   <extension-point id="annotationFiles" name="annotationFiles" schema="schema/annotationFiles.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/annotationFiles.exsd b/jsf/plugins/org.eclipse.jst.jsf.core/schema/annotationFiles.exsd
deleted file mode 100644
index 9068cc3..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/schema/annotationFiles.exsd
+++ /dev/null
@@ -1,135 +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="annotationFiles" name="annotationFiles"/>
-      </appInfo>
-      <documentation>
-         Adds annotation meta-data to a content model.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="annotationFile" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="annotationFile">
-      <annotation>
-         <documentation>
-            File used to map annotations to a tag library content model.  The file assigns properties to a tag element or attribute.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="uri" type="string" use="required">
-            <annotation>
-               <documentation>
-                  Content model URI being annotated.  eg.  &quot;http://java.sun.com/jsf/core&quot;.   This can, of course, be any string that the consumer wishes to use as a key.  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="location" type="string" use="required">
-            <annotation>
-               <documentation>
-                  Location of the annotation file.   If no locator is provided, it will use the default &lt;code&gt;CMPluginRelativeSourceFileLocator&lt;/code&gt; which will find the file in a location relative to the plugin.
-eg. /metadata/jsf_core.xml
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="locator" type="string">
-            <annotation>
-               <documentation>
-                  Class implementing the abstract &lt;code&gt;CMAnnotationSourceFileLocator&lt;/code&gt; class.  Responsible for locating the annotation file and returning an InputStream to the parser and returning a &lt;code&gt;ResourceBundle&lt;/code&gt; if there is one.   If a locator is not supplied, the default implementation for a plugin relative file, &lt;code&gt;CMPluginRelativeSourceFileLocator&lt;/code&gt; will be used.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.jst.jsf.core.internal.provisional.contentmodel.annotation.CMAnnotationSourceFileLocator"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="parser" type="string">
-            <annotation>
-               <documentation>
-                  The name of the parser class used to fill the internal model.  If not specified the default, &lt;code&gt;CMAnnotationFileParser&lt;/code&gt;, will be used which conforms to the default schema &lt;code&gt;http://org.eclipse.jst.jsf.core/grammarAnnotationSchema&lt;/code&gt;.   If parser is provided, it must implement &lt;code&gt;ICMAnnotationFileParser&lt;/code&gt;.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.jst.jsf.core.internal.provisional.contentmodel.annotation.ICMAnnotationFileParser"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         WTP 1.5
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         The parser, if specified, must implement &lt;code&gt;ICMAnnotationFileParser&lt;/code&gt; to create &lt;code&gt;CMElementAnnotation&lt;/code&gt; and &lt;code&gt;CMAttributeAnnotations&lt;/code&gt; in the &lt;code&gt;CMAnnotationMap&lt;/code&gt;.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-</schema>
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 b775f99..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/Messages.java
+++ /dev/null
@@ -1,54 +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;
-
-	public static String JSFAppConfigManager_InvalidWriteAccess;
-
-	static {
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contentmodel/annotation/CMAnnotation.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contentmodel/annotation/CMAnnotation.java
deleted file mode 100644
index bec4cfd..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contentmodel/annotation/CMAnnotation.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *   IBM - Initial API and implementation
- *   Jens Lukowski/Innoopract - initial renaming/restructuring
- *   Gerry Kessler/Oracle - code borrowed and repurposed for JSF subproject
- * 
- */
-package org.eclipse.jst.jsf.core.internal.contentmodel.annotation;
-
-import java.util.ArrayList;
-import java.util.Hashtable;
-import java.util.List;
-
-/**
- * Content model annotation.   A property with a set of values.
- */
-public abstract class CMAnnotation {
-	private String _name;	
-	protected Hashtable props = new Hashtable(3);
-
-	public CMAnnotation(String name) {
-		setName(name.trim());
-	}
-
-	private void setName(String name) {
-		_name = name;
-	}
-
-	public String getName() {
-		return _name;
-	}
-
-	public void setProperty(String propertyName, String propertyValue) {
-		CMAnnotationProperty prop = getAnnotationProperty(propertyName);
-		if (prop == null){
-			prop = new CMAnnotationProperty(propertyName, propertyValue);
-			props.put(propertyName, prop);
-		}
-		else {
-			prop.setValue(propertyValue);
-		}		
-	}
-
-	public CMAnnotationProperty getAnnotationProperty(String propertyName){
-		if (props.containsKey(propertyName))
-			return (CMAnnotationProperty)props.get(propertyName);
-		return null;
-	}
-	
-	class CMAnnotationProperty {
-		private String propName;
-		private List propValues = new ArrayList(2);
-		
-		public CMAnnotationProperty(String propertyName){
-			propName = propertyName;
-		}
-
-		public CMAnnotationProperty(String propertyName, String propertyValue){
-			propName = propertyName;
-			propValues.add(propertyValue);
-		}
-		
-		public void setValue(String propertyValue) {
-			propValues.add(propertyValue);
-		}
-		
-		public String getPropertyName(){
-			return propName;
-		}
-		
-		public List getPropertyValues(){
-			return propValues;
-		}
-	}
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contentmodel/annotation/CMAnnotationAdvisor.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contentmodel/annotation/CMAnnotationAdvisor.java
deleted file mode 100644
index 9853bc7..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contentmodel/annotation/CMAnnotationAdvisor.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Oracle Corporation.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Gerry Kessler/Oracle - initial API and implementation
- *    
- ********************************************************************************/
-
-package org.eclipse.jst.jsf.core.internal.contentmodel.annotation;
-
-import org.eclipse.jst.jsf.core.internal.provisional.contentmodel.annotation.ICMAnnotationSourceFileInfo;
-
-/**
- * An internal class implementing ICMAnnotationAdvisor that allows us to decouple the parser
- * from the internal data model (CMAnnotationMap).
- * 
- * @author Gerry Kessler - Oracle
- *
- */
-public final class CMAnnotationAdvisor implements ICMAnnotationAdvisor {
-
-	private CMAnnotationMap map;
-	private ICMAnnotationSourceFileInfo fileInfo;
-
-	public CMAnnotationAdvisor(CMAnnotationMap map, ICMAnnotationSourceFileInfo fileInfo) {
-		this.map = map;
-		this.fileInfo = fileInfo;
-		setCaseSensitive(true);// default to case sensitive
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jst.jsf.core.internal.contentmodel.annotation.ICMAnnotationAdvisor#addElementAnnotation(java.lang.String, java.lang.String, java.lang.String)
-	 */
-	public void addElementAnnotation(String elementName, String propertyName, String propertyValue) {
-
-		CMElementAnnotation elem = getElementAnnotation(getStringValueForCaseSensitivity(elementName));
-		elem.setProperty(getStringValueForCaseSensitivity(propertyName), propertyValue);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jst.jsf.core.internal.contentmodel.annotation.ICMAnnotationAdvisor#addAttributeAnnotation(java.lang.String, java.lang.String, java.lang.String, java.lang.String)
-	 */
-	public void addAttributeAnnotation(String elementName, String attributeName,
-			String propertyName, String propertyValue) {
-
-		CMElementAnnotation elem = getElementAnnotation(getStringValueForCaseSensitivity(elementName));
-		CMAttributeAnnotation attr = getAttributeAnnotation(elem,
-				getStringValueForCaseSensitivity(attributeName));
-		attr.setProperty(getStringValueForCaseSensitivity(propertyName), propertyValue);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jst.jsf.core.internal.contentmodel.annotation.ICMAnnotationAdvisor#getFileInfo()
-	 */
-	public ICMAnnotationSourceFileInfo getFileInfo() {
-		return fileInfo;
-	}
-
-	/**
-	 * This implementation is case sensitive by default
-	 * 
-	 * @see org.eclipse.jst.jsf.core.internal.contentmodel.annotation.ICMAnnotationAdvisor#setCaseSensitive(boolean)
-	 */
-	public void setCaseSensitive(boolean val) {
-		map.setCaseSensitive(val);
-	}
-
-	private CMElementAnnotation getElementAnnotation(String elementName) {
-		CMElementAnnotation elem = map.getElementAnnotation(elementName);
-		if (elem == null) {
-			elem = new CMElementAnnotation(elementName);
-			map.addCMElementAnnotation(elem);
-		}
-		return elem;
-	}
-
-	private CMAttributeAnnotation getAttributeAnnotation(CMElementAnnotation elem,
-			String attributeName) {
-		// attrAnnotations map will always be initialized so do not need to check for null
-		CMAttributeAnnotation attr = (CMAttributeAnnotation) elem.getAttributeAnnotations().get(
-				attributeName);
-		if (attr == null) {
-			attr = new CMAttributeAnnotation(elem.getName(), attributeName);
-			elem.addCMAttributeAnnotation(attr);
-		}
-		return attr;
-	}
-
-	private String getStringValueForCaseSensitivity(String val) {
-		return map.getStringValueForCaseSensitivity(val);
-	}
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contentmodel/annotation/CMAnnotationFileInfo.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contentmodel/annotation/CMAnnotationFileInfo.java
deleted file mode 100644
index 32fd481..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contentmodel/annotation/CMAnnotationFileInfo.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * 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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *   IBM - Initial API and implementation
- *   Jens Lukowski/Innoopract - initial renaming/restructuring
- *   Gerry Kessler/Oracle - code borrowed and repurposed for JSF subproject
- * 
- */
-package org.eclipse.jst.jsf.core.internal.contentmodel.annotation;
-
-import org.eclipse.jst.jsf.core.internal.provisional.contentmodel.annotation.ICMAnnotationSourceFileInfo;
-
-/**
- * Contains information about annotation files.  
- */
-public final class CMAnnotationFileInfo implements ICMAnnotationSourceFileInfo{
-	private String annotationFileLocation;
-	private String annotationFileLocatorClassname;
-	private String bundleId;
-	private String parserClassname;
-
-	public CMAnnotationFileInfo(String annotationFileLocation, String bundleId, String parserClassname, String annotationFileLocatorClassname) {
-		this.annotationFileLocation = annotationFileLocation.trim();
-		this.bundleId = bundleId.trim();
-		this.parserClassname = parserClassname;
-		this.annotationFileLocatorClassname = annotationFileLocatorClassname;
-	}
-
-	/**
-	 * Get the location of the annotation file as originally specified.
-	 * 
-	 * @return String
-	 */
-	public String getAnnotationFileLocation() {
-		return annotationFileLocation;
-	}
-	
-	/**
-	 * Get the annotation file locator classname that must implement ICMAnnotationSourceFileLocator.
-	 * Can return null or empty string.   Caller should provide default.
-	 * 
-	 * @return String
-	 */
-	public String getAnnotationFileLocatorClassname() {
-		return annotationFileLocatorClassname != null ? annotationFileLocatorClassname.trim() : null;
-	}
-
-	/**
-	 * Get the bundle id of the plugin where the annotation file is located.
-	 * 
-	 * @return String
-	 */
-	public String getBundleId() {
-		return bundleId;
-	}
-	
-	/**
-	 * Return classname for the annotation file parser (ICMAnnotationFileParser) to use.
-	 * Can return null or empty string.   If it does, the caller should provide a default.
-	 * 
-	 * @return String
-	 */
-	public String getParserClassName(){
-		return parserClassname != null ? parserClassname.trim() : null;
-	}
-
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contentmodel/annotation/CMAnnotationFileParser.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contentmodel/annotation/CMAnnotationFileParser.java
deleted file mode 100644
index b2aed03..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contentmodel/annotation/CMAnnotationFileParser.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *   IBM - Initial API and implementation
- *   Jens Lukowski/Innoopract - initial renaming/restructuring
- * 	 Gerry Kessler/Oracle - code borrowed and repurposed for JSF subproject
- */
-package org.eclipse.jst.jsf.core.internal.contentmodel.annotation;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-
-import org.eclipse.jst.jsf.core.internal.provisional.contentmodel.annotation.CMAnnotationSourceFileLocator;
-import org.eclipse.jst.jsf.core.internal.provisional.contentmodel.annotation.ICMAnnotationFileParser;
-import org.xml.sax.Attributes;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.DefaultHandler;
-
-/**
- * Default implementation of ICMAnnotationFileParser that will parse xml files conforming to 
- * http://org.eclipse.jst.jsf.core/grammarAnnotationSchema.   
- * 
- * @author Gerry Kessler - Oracle
- * 
- * @see http://org.eclipse.jst.jsf.core/grammarAnnotationSchema
- */
-public class CMAnnotationFileParser implements ICMAnnotationFileParser {
-	
-	public static final String TAG_ID_ANNOTATIONS = "grammar-annotations"; //$NON-NLS-1$
-	public static final String TAG_ID_ELEMENT = "cm-element"; //$NON-NLS-1$
-	public static final String TAG_ID_ATTRIBUTE = "cm-attribute"; //$NON-NLS-1$
-	public static final String TAG_ID_PROPERTY = "property"; //$NON-NLS-1$
-	public static final String TAG_ID_PROPERTY_VALUE = "value"; //$NON-NLS-1$
-
-	/**
-	 * This method is called to parse an annotation file and store the contents
-	 * into an annotationMap via the advisor
-	 */
-	private void parse(ICMAnnotationAdvisor advisor, InputStream input) throws Exception {
-		ClassLoader prevClassLoader = Thread.currentThread().getContextClassLoader();
-		try {
-			SAXParserFactory factory = SAXParserFactory.newInstance();
-			factory.setNamespaceAware(true);
-			SAXParser parser = factory.newSAXParser();
-			parser.parse(new InputSource(input), new CMAnnotationMapContentHandler(advisor));
-		} finally {
-			Thread.currentThread().setContextClassLoader(prevClassLoader);
-			if (input != null){
-				try {
-					input.close();
-				} catch (IOException e) {
-				}
-			}
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jst.jsf.core.internal.provisional.contentmodel.annotation.ICMAnnotationFileParser#parse(org.eclipse.jst.jsf.core.internal.contentmodel.annotation.ICMAnnotationAdvisor, org.eclipse.jst.jsf.core.internal.provisional.contentmodel.annotation.CMAnnotationSourceFileLocator)
-	 */
-	public void parse(ICMAnnotationAdvisor advisor, CMAnnotationSourceFileLocator locator)
-			throws Exception {
-		
-		InputStream inputStream = locator.getAnnotationSourceInputStream();
-		parse(advisor, inputStream);
-	}
-
-	protected class CMAnnotationMapContentHandler extends DefaultHandler {
-		private ICMAnnotationAdvisor advisor;
-		private String elementName;
-		private String attributeName;
-		private String currentPropertyName;
-		private String currentPropertyValue;
-		private StringBuffer propertyValueBuffer;
-
-		private boolean isInCMAttribute = false;
-
-		private boolean doCaptureNodeText;
-
-		public CMAnnotationMapContentHandler(ICMAnnotationAdvisor advisor) {
-			this.advisor = advisor;
-		}
-
-		public void startElement(String uri, String localName, String qName, Attributes attributes)
-				throws SAXException {
-			if (localName.equals(TAG_ID_ANNOTATIONS)) {
-				int attributesLength = attributes.getLength();
-				for (int i = 0; i < attributesLength; i++) {
-					String attributeName = attributes.getLocalName(i);
-					String attributeValue = attributes.getValue(i);
-					if (attributeName.equals("caseSensitive")) { //$NON-NLS-1$					
-						if (attributeValue.trim().equals("false")) {//$NON-NLS-1$
-							advisor.setCaseSensitive(false);
-						}
-					}
-				}
-			} else if (localName.equals(TAG_ID_ELEMENT)) {
-				isInCMAttribute = false;
-				elementName = attributes.getValue("name"); //$NON-NLS-1$
-			} else if (localName.equals(TAG_ID_ATTRIBUTE)) {
-				isInCMAttribute = true;
-				attributeName = attributes.getValue("name"); //$NON-NLS-1$
-			} else if (localName.equals(TAG_ID_PROPERTY)) {
-				currentPropertyName = attributes.getValue("name"); //$NON-NLS-1$					
-			} else if (localName.equals(TAG_ID_PROPERTY_VALUE)) {
-				propertyValueBuffer = new StringBuffer();
-				doCaptureNodeText = true;
-			}
-		}
-
-		public void endElement(String uri, String localName, String qName) throws SAXException {
-			if (currentPropertyName != null && localName.equals(TAG_ID_PROPERTY_VALUE)) {
-				doCaptureNodeText = false;
-				currentPropertyValue = propertyValueBuffer.toString();
-				if (currentPropertyValue != null) {					
-					if (isInCMAttribute)
-						advisor.addAttributeAnnotation(elementName, attributeName,
-								currentPropertyName, currentPropertyValue);
-					else
-						advisor.addElementAnnotation(elementName, currentPropertyName,
-								currentPropertyValue);
-				}
-			}
-
-			if (localName.equals(TAG_ID_ELEMENT)) {
-				elementName = null;
-			} else if (localName.equals(TAG_ID_ATTRIBUTE)) {
-				isInCMAttribute = false;
-				attributeName = null;
-			} else if (localName.equals(TAG_ID_PROPERTY)) {
-				currentPropertyName = null;
-			} else if (localName.equals(TAG_ID_PROPERTY_VALUE)) {
-				currentPropertyValue = null;
-			}
-		}
-
-		public void characters(char[] ch, int start, int length) {
-			if (doCaptureNodeText)
-				propertyValueBuffer.append(ch, start, length);
-		}
-
-	}
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contentmodel/annotation/CMAnnotationFileParserHelper.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contentmodel/annotation/CMAnnotationFileParserHelper.java
deleted file mode 100644
index 2c69feb..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contentmodel/annotation/CMAnnotationFileParserHelper.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Oracle Corporation.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Gerry Kessler/Oracle - initial API and implementation
- *    
- ********************************************************************************/
-
-package org.eclipse.jst.jsf.core.internal.contentmodel.annotation;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jst.jsf.core.internal.JSFCorePlugin;
-import org.eclipse.jst.jsf.core.internal.provisional.contentmodel.annotation.CMAnnotationSourceFileLocator;
-import org.eclipse.jst.jsf.core.internal.provisional.contentmodel.annotation.ICMAnnotationFileParser;
-import org.osgi.framework.Bundle;
-
-public class CMAnnotationFileParserHelper {
-	private CMAnnotationFileInfo fileInfo;
-	private static final String DEFAULT_PARSER_NAME = "org.eclipse.jst.jsf.core.internal.contentmodel.annotation.CMAnnotationFileParser";
-	private static final String DEFAULT_LOCATOR_NAME = "org.eclipse.jst.jsf.core.internal.contentmodel.annotation.CMPluginRelativeSourceFileLocator";
-	
-	public CMAnnotationFileParserHelper(CMAnnotationFileInfo fileInfo) {
-		super();
-		this.fileInfo = fileInfo;
-	}
-	
-	public void parse(CMAnnotationMap map){
-		ICMAnnotationFileParser parser = getParser();
-		ICMAnnotationAdvisor advisor = new CMAnnotationAdvisor(map, fileInfo);
-		CMAnnotationSourceFileLocator locator = getLocator();
-		map.setLocator(locator);
-		try {
-			parser.parse(advisor, locator);
-		} catch (Exception e) {
-			JSFCorePlugin.log(e, "Unable to parse: " + fileInfo.getAnnotationFileLocation() + " with " + fileInfo.getAnnotationFileLocatorClassname());
-		}
-	}
-
-	private ICMAnnotationFileParser getParser() {
-		String parserClassName = fileInfo.getParserClassName();
-		Object obj = null;
-		if (parserClassName != null && !parserClassName.equals("")){
-			obj = getObjectForClassname(fileInfo.getBundleId(), parserClassName);
-		}
-		else {//return default			
-			obj = getObjectForClassname(JSFCorePlugin.PLUGIN_ID, DEFAULT_PARSER_NAME );
-		}
-		if (obj != null && obj instanceof ICMAnnotationFileParser)
-			return (ICMAnnotationFileParser)obj;
-		
-		return null;
-	}
-	
-	private CMAnnotationSourceFileLocator getLocator() {
-		String locatorClassName = fileInfo.getAnnotationFileLocatorClassname();
-		Object obj = null;
-		if (locatorClassName != null && !locatorClassName.equals("")){
-			obj = getObjectForClassname(fileInfo.getBundleId(), locatorClassName);
-		}
-		else {//return default			
-			obj = getObjectForClassname(JSFCorePlugin.PLUGIN_ID, DEFAULT_LOCATOR_NAME);
-		}
-		if (obj != null && obj instanceof CMAnnotationSourceFileLocator){
-			CMAnnotationSourceFileLocator locator = (CMAnnotationSourceFileLocator)obj;
-			((CMAnnotationSourceFileLocator) locator).setFileInfo(fileInfo);
-			return locator;
-		}
-		return null;
-	}
-	
-	private static Object getObjectForClassname(String bundleId, String providerClassName){
-		try {
-			Bundle bundle =Platform.getBundle(bundleId);
-			if (bundle == null){
-				JSFCorePlugin.log(IStatus.ERROR, getMsg( bundleId, providerClassName, "Unable to find bundleId: "));
-				return null;
-			}
-			Class klass = bundle.loadClass(providerClassName);
-			if (klass != null){
-				return klass.newInstance();					
-			}
-			return null;
-		} catch (ClassNotFoundException e) {
-			JSFCorePlugin.log(e, getMsg(bundleId, providerClassName, "ClassNotFoundException: "));
-		} catch (InstantiationException e) {
-			JSFCorePlugin.log(e, getMsg(bundleId, providerClassName,"InstantiationException: "));
-		} catch (IllegalAccessException e) {
-			JSFCorePlugin.log(e, getMsg(bundleId, providerClassName,"IllegalAccessException: "));
-		}
-		return null;
-	}
-
-	private static String getMsg(String bundleId, String providerClassName, String prefix) {
-		StringBuffer buf = new StringBuffer(prefix);
-		buf.append(providerClassName).append(" in ").append(bundleId);
-		return buf.toString();
-	}
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contentmodel/annotation/CMAnnotationFileRegistry.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contentmodel/annotation/CMAnnotationFileRegistry.java
deleted file mode 100644
index 6fb72ea..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contentmodel/annotation/CMAnnotationFileRegistry.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *   IBM - Initial API and implementation
- *   Jens Lukowski/Innoopract - initial renaming/restructuring
- * 	 Gerry Kessler/Oracle - code borrowed and repurposed for JSF subproject
- */
-package org.eclipse.jst.jsf.core.internal.contentmodel.annotation;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.jst.jsf.core.internal.JSFCorePlugin;
-import org.eclipse.jst.jsf.core.internal.provisional.contentmodel.annotation.ICMAnnotationSourceFileInfo;
-
-/**
- * This internal class is used to associate one or more annotation files with a grammar
- * file mapped by a key (uri).
- * 
- * Using the CMAnnotationFileRegistryReader, extenders of <code>org.eclipse.jst.jsf.core.annotationFiles</code> are loaded
- * into the annotationFilesMap keyed by uri.   There can be multiple annotationFiles mapped to the same uri.
- * 
- * This registry should only be accessed by clients using the <code>org.eclipse.jst.jsf.core.internal.provisional.contentmodel.annotation.CMAnnotationHelper</code>.
- * Only when the system attempts to access an annotation for a content model, will the file be parsed and cached.
- * 
- * When queried, CMAnnotationPropertyValue objects are returned for each named property found in each annotation file for a particular uri.
- * 
- * @see org.eclipse.jst.jsf.core.annotationFiles extension-point
- * @see CMAnnotationFileRegistryReader
- * @see CMAnnotationMap
- * @see 
- * @see org.eclipse.jst.jsf.core.internal.provisional.contentmodel.annotation.ICMAnnotationSourceFileInfo
- */
-public final class CMAnnotationFileRegistry {
-	//all annotation files registered using "org.eclipse.jst.jsf.core.annotationFiles" ext-pt. and keyed by uri.  
-	private Map annotationFilesMap 	= new HashMap(1);
-	//will return list of CMAnnotationMap (parsed annotation files) objects keyed by uri
-	private Map parsedFilesMap 		= new HashMap(1);
-
-	private static CMAnnotationFileRegistry reg;
-	
-	public static CMAnnotationFileRegistry getInstance() {
-		if (reg == null){
-			reg = new CMAnnotationFileRegistry();
-		}
-		return reg;
-	}
-	
-	//constructor reads the annotationFile registry and populates the annotationFilesMap
-	private CMAnnotationFileRegistry() {
-		new CMAnnotationFileRegistryReader(this).readRegistry();
-	}
-	
-	private synchronized List getAnnotationFilesInfos(String uri) {
-		List theList = (List) annotationFilesMap.get(uri);
-		return theList != null ? theList : new ArrayList();
-	}
-		
-	/**
-	 * For use by registry reader only
-	 * @param uri
-	 * @param CMAnnotationFileInfo
-	 */
-	public synchronized void addAnnotationFileInfo(String uri, ICMAnnotationSourceFileInfo fileInfo) {
-		List fileInfos = (List) annotationFilesMap.get(uri);
-		if (fileInfos == null) {
-			fileInfos = new ArrayList();
-			annotationFilesMap.put(uri, fileInfos);
-		}
-		fileInfos.add(fileInfo);
-	}	
-	
-	private synchronized void addParsedFileToMap(String uri, CMAnnotationMap map) {
-		List maps = (List) parsedFilesMap.get(uri);
-		if (maps == null) {
-			maps = new ArrayList();
-			parsedFilesMap.put(uri, maps);
-		}
-		maps.add(map);
-	}
-
-	/**
-	 * Return list of CMAnnotationMaps for a given uri.  
-	 * By calling this method, unparsed annotation files for the given 
-	 * uri will be parsed.
-	 * 
-	 * @param uri
-	 * @return List of CMAnnotationMaps
-	 */
-	public synchronized List getAnnotationMaps(String uri) {
-		List list = (List)parsedFilesMap.get(uri);
-		if (list == null){
-			loadAnnotationsForGrammar(uri);
-			list = (List)parsedFilesMap.get(uri);
-		}
-		return list;
-	}
-	
-
-	/**
-	 * Does this bundle define an annotationFile extension for the given uri.
-	 * 
-	 * @param bundleId
-	 * @param uri
-	 * @return boolean
-	 */
-	public boolean hasAnnotations(String bundleId, String uri) {
-		List maps = (List)annotationFilesMap.get(uri);
-		if (maps == null || maps.size() ==0)
-			return false;
-		
-		for (int i=0;i<maps.size();i++){
-			if (((ICMAnnotationSourceFileInfo)maps.get(i)).getBundleId().equals(bundleId))
-				return true;
-		}
-		return false;
-	}
-	/**
-	 * Are there any annotationFile extensions defined for the given uri.
-	 * @param uri
-	 * @return boolean
-	 */
-	public boolean hasAnnotations(String uri){
-		if (annotationFilesMap.get(uri) != null)
-			return true;
-		return false;
-	}
-
-	private boolean areAnnotationsParsed(String uri) {
-		if (hasAnnotations(uri)){
-			if (parsedFilesMap.get(uri) != null)
-				return true;
-		}
-		return false;
-	}
-	
-	private void loadAnnotationsForGrammar(String uri) {
-		if (areAnnotationsParsed(uri))
-			return;
-		
-		List annotationFiles = getAnnotationFilesInfos(uri);
-		for (Iterator i = annotationFiles.iterator(); i.hasNext();) {
-			try {					
-				CMAnnotationFileInfo annotationFileInfo = (CMAnnotationFileInfo) i.next();
-				CMAnnotationMap map = new CMAnnotationMap(annotationFileInfo);
-				CMAnnotationFileParserHelper parserHelper = new CMAnnotationFileParserHelper(annotationFileInfo);
-				parserHelper.parse(map);
-				addParsedFileToMap(uri, map);
-			}
-			catch (Exception e) {
-				JSFCorePlugin.log(e, "Error loading grammar for: " + uri);				
-			}
-		}		
-	}
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contentmodel/annotation/CMAnnotationFileRegistryReader.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contentmodel/annotation/CMAnnotationFileRegistryReader.java
deleted file mode 100644
index 801d15a..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contentmodel/annotation/CMAnnotationFileRegistryReader.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright (c) 2002, 2006 IBM Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *   IBM - Initial API and implementation
- *   Jens Lukowski/Innoopract - initial renaming/restructuring
- *   Gerry Kessler/Oracle - code borrowed and repurposed for JSF subproject
- */
-package org.eclipse.jst.jsf.core.internal.contentmodel.annotation;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jst.jsf.core.internal.JSFCorePlugin;
-
-
-/**
- * This class reads the plugin manifests and adds each specified grammar
- * annotation file to the CMAnnotationsRegistry.
- * 
- * @see CMAnnotationFileRegistry
- * @see org.eclipse.jst.jsf.core.annotationFiles extension-point
- */
-public class CMAnnotationFileRegistryReader {
-	protected static final String EXTENSION_POINT_ID = "annotationFiles"; //$NON-NLS-1$
-	protected static final String TAG_NAME = "annotationFile"; //$NON-NLS-1$
-	protected static final String ATT_URI = "uri"; //$NON-NLS-1$
-	protected static final String ATT_LOCATION = "location"; //$NON-NLS-1$
-	protected static final String ATT_LOCATOR = "locator"; //$NON-NLS-1$
-	protected static final String ATT_PARSER = "parser"; //$NON-NLS-1$
-
-	private CMAnnotationFileRegistry annotationFileRegistry;
-
-	public CMAnnotationFileRegistryReader(CMAnnotationFileRegistry annotationFileRegistry) {
-		this.annotationFileRegistry = annotationFileRegistry;
-	}
-
-	/**
-	 * read from plugin registry and parse it.
-	 */
-	public void readRegistry() {
-		IExtensionRegistry extensionRegistry = Platform.getExtensionRegistry();
-		String pluginId = "org.eclipse.jst.jsf.core"; //$NON-NLS-1$
-		IExtensionPoint point = extensionRegistry.getExtensionPoint(pluginId, EXTENSION_POINT_ID);
-		if (point != null) {
-			IConfigurationElement[] elements = point.getConfigurationElements();
-			for (int i = 0; i < elements.length; i++) {
-				readElement(elements[i]);
-			}
-		}
-	}
-
-	protected void readElement(IConfigurationElement element) {
-		if (element.getName().equals(TAG_NAME)) {
-			String uri = element.getAttribute(ATT_URI);
-			String location = element.getAttribute(ATT_LOCATION);
-			String locator = element.getAttribute(ATT_LOCATOR);
-			String parser = element.getAttribute(ATT_PARSER);
-			String bundleId = null;
-			if (uri != null && location != null) {
-				try {
-					bundleId = element.getNamespaceIdentifier();
-					CMAnnotationFileInfo fileInfo = new CMAnnotationFileInfo(location, bundleId, parser, locator);
-					annotationFileRegistry.addAnnotationFileInfo(uri, fileInfo);
-				}
-				catch (Exception e) {
-					JSFCorePlugin.log(e, "Problem adding annotation file: bundle = " + bundleId + ", uri = " +uri + ", location = " + location); //$NON-NLS-1$
-				}
-			}
-		}
-	}
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contentmodel/annotation/CMAnnotationMap.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contentmodel/annotation/CMAnnotationMap.java
deleted file mode 100644
index a332b44..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contentmodel/annotation/CMAnnotationMap.java
+++ /dev/null
@@ -1,301 +0,0 @@
-/*
- * Copyright (c) 2002 2006 IBM Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *   IBM - Initial API and implementation
- *   Jens Lukowski/Innoopract - initial renaming/restructuring
- *   Oracle - code borrowed and repurposed for JSF subproject
- */
-package org.eclipse.jst.jsf.core.internal.contentmodel.annotation;
-
-import java.io.IOException;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-import java.util.Vector;
-
-import org.eclipse.jst.jsf.core.internal.JSFCorePlugin;
-import org.eclipse.jst.jsf.core.internal.provisional.contentmodel.annotation.CMAnnotationPropertyValue;
-import org.eclipse.jst.jsf.core.internal.provisional.contentmodel.annotation.CMAnnotationSourceFileLocator;
-import org.eclipse.jst.jsf.core.internal.provisional.contentmodel.annotation.ICMAnnotationSourceFileInfo;
-
-
-/**
- * Internal data model of content model annotations.   
- * The content model is assumed to be xml-based (elements and attributes).
- * 
- * Map of annotations for content model elements keyed by tag element name.
- * Attribute annotations are stored in a map inside the element annotation.
- * 
- *  @see <code>org.eclipse.jst.jsf.core.internal.contentmodel.annotation.CMElementAnnotation</code>
- *  @see <code>org.eclipse.jst.jsf.core.internal.contentmodel.annotation.CMAttributeAnnotation</code>
- * 
- */
-public class CMAnnotationMap {
-	//map of tag-element annotations keyed by tag name
-	protected Map cmNodeToAnnotationMap = new Hashtable();
-	protected boolean isCaseSensitive = true;
-	protected ICMAnnotationSourceFileInfo fileInfo;
-	private ResourceBundle resourceBundle;
-	private CMAnnotationSourceFileLocator locator;
-
-	public CMAnnotationMap(ICMAnnotationSourceFileInfo fileInfo) {
-		this.fileInfo = fileInfo;
-	}
-
-	/**
-	 * Set whether or not the model should be queried in a case sensitive manner
-	 * 
-	 * @param boolean
-	 */
-	public void setCaseSensitive(boolean isCaseSensitive) {
-		this.isCaseSensitive = isCaseSensitive;
-	}
-
-	/**
-	 * Set the ICMAnnotationSourceFileLocator used to find and load the annotation file
-	 * @param locator
-	 */
-	public void setLocator(CMAnnotationSourceFileLocator locator){
-		this.locator = locator;
-	}
-	
-	/**
-	 * Return  the annotation for the specified element name.
-	 * Will be null if no annotation is found.
-	 * 
-	 * @param elementName
-	 * @return CMElementAnnotation
-	 */
-	public CMElementAnnotation getElementAnnotation(String elementName) {
-		CMElementAnnotation elem = null;
-		if (cmNodeToAnnotationMap.containsKey(elementName)){
-			List annos = (List)cmNodeToAnnotationMap.get(elementName);
-			Iterator it = annos.iterator();
-			while(it.hasNext()){
-				elem = (CMElementAnnotation)it.next();
-				if (elem.getName() == elementName)
-					break;
-			}
-		}		
-		return elem;
-	}
-	
-	/**
-	 * Annotation advisor will call this method when adding an annotation to a map.
-	 * 
-	 * @param annotation
-	 */
-	public void addCMElementAnnotation(CMElementAnnotation annotation) {
-		addAnnotationForCMNodeName(annotation.getName(), annotation);
-	}
-
-	private void addAnnotationForCMNodeName(String cmNodeName, CMElementAnnotation annotation) {
-		List list = (List) cmNodeToAnnotationMap.get(cmNodeName);
-		if (list == null) {
-			list = new Vector();
-			cmNodeToAnnotationMap.put(cmNodeName, list);
-		}
-		list.add(annotation);
-	}
-
-	/**
-	 * Returns list of NLS fixed String values for a given property name of an element.
-	 * 
-	 * @param elementName
-	 * @param propertyName
-	 * @return List of Strings - can be null
-	 */
-	public List getCMElementPropertyValues(String elementName, String propertyName) {
-		List result = null;
-		String key = getStringValueForCaseSensitivity(elementName);
-		String propName = getStringValueForCaseSensitivity(propertyName);
-		List annotationList = (List) cmNodeToAnnotationMap.get(key);
-		if (annotationList != null) {
-			for (Iterator i = annotationList.iterator(); i.hasNext();) {
-				CMAnnotation annotation = (CMAnnotation) i.next();
-				if (annotation.getAnnotationProperty(propName)!= null) {
-					result = getNLSPropertyValues(annotation, propName);
-					break;
-				}
-			}
-		}
-		return result;
-	}
-	
-	/**
-	 * Returns the first NLS fixed String value for a given property name of an element.
-	 * Caller should use <code>getCMElementPropertyValues</code> if multiple values can be returned for a
-	 * property name.
-	 * 
-	 * @param elementName
-	 * @param propertyName
-	 * @return String - can be null
-	 */
-	public String getCMElementProperty(String elementName, String propertyName) {
-		String result = null;
-		List vals = getCMElementPropertyValues(elementName, propertyName);
-		if (vals != null){
-			if (vals.get(0) != null)
-				result = vals.get(0).toString();
-		}
-		return result;
-	}
-	
-	/**
-	 * Returns list of NLS fixed String values for a given property name of an attribute of a particular element.
-	 * 
-	 * @param elementName
-	 * @param propertyName
-	 * @return List of Strings - can be null
-	 */
-	public List getCMAttributePropertyValues(String elementName, String attributeName, String propertyName) {
-		List result = null;
-		String key = getStringValueForCaseSensitivity(elementName);
-		String attrName = getStringValueForCaseSensitivity(attributeName);
-		String propName = getStringValueForCaseSensitivity(propertyName);		
-		List annotationListForElement = (List) cmNodeToAnnotationMap.get(key);
-		if (annotationListForElement != null) {
-			CMAttributeAnnotation annotationForAttr = getCMAttributeAnnotation(annotationListForElement, attrName);
-			if (annotationForAttr != null){
-				if (annotationForAttr.getAnnotationProperty(propName) != null){
-					List propVals = getNLSPropertyValues(annotationForAttr, propName);
-					if (propVals != null)
-						result = propVals;
-				}
-			}
-		}
-		return result;
-	}
-		
-	/**
-	 * Gets the first property value for the specified element and attribute.
-	 * 
-	 * @param elementName
-	 * @param attributeName
-	 * @param propertyName
-	 * @return String - can be null
-	 */
-	public String getCMAttributeProperty(String elementName, String attributeName, String propertyName) {
-		String result = null;
-		List propVals = getCMAttributePropertyValues(elementName, attributeName, propertyName);
-		if (propVals != null){
-			result = (String)propVals.get(0);
-		}
-		return result;
-	}
-
-	/**
-	 * Return a <code>CMAnnotationPropertyValue</code> object for the given element, attribute, and property name.
-	 * 
-	 * @param elementName
-	 * @param attributeName
-	 * @param propertyName
-	 * @return CMAnnotationPropertyValue - can be null
-	 */
-	public CMAnnotationPropertyValue getCMAttributePropertyValue(String elementName, String attributeName, String propertyName) {
-		CMAnnotationPropertyValue result = null;
-		List val = getCMAttributePropertyValues(elementName, attributeName, propertyName);
-		if (val != null){
-			result = new CMAnnotationPropertyValue(fileInfo, val);
-		}
-		return result;
-	}
-	
-	/**
-	 * Return a <code>CMAnnotationPropertyValue</code> object for the given element and property name.
-	 * 
-	 * @param elementName
-	 * @param propertyName
-	 * @return CMAnnotationPropertyValue - can be null
-	 */
-	public CMAnnotationPropertyValue getCMElementPropertyValue(String elementName, String propertyName) {
-		CMAnnotationPropertyValue result = null;
-		List val = getCMElementPropertyValues(elementName, propertyName);
-		if (val != null){
-			result = new CMAnnotationPropertyValue( fileInfo, val);
-		}
-		return result;
-	}
-	
-	private CMAttributeAnnotation getCMAttributeAnnotation(List annotationListForElement, String attributeName) {
-		for (int i=0;i < annotationListForElement.size();i++){
-			CMElementAnnotation annotationForElement = (CMElementAnnotation)annotationListForElement.get(i);
-			if (annotationForElement != null){
-				Map attributeAnnotations = annotationForElement.getAttributeAnnotations();
-				if (attributeAnnotations != null){
-					CMAttributeAnnotation attributeAnnotation = (CMAttributeAnnotation)attributeAnnotations.get(attributeName);
-					if (attributeAnnotation != null){
-						return attributeAnnotation;
-					}
-				}
-			}
-		}
-		return null ;
-	}
-
-	private List getNLSPropertyValues(CMAnnotation annotation, String propertyName){
-		List result =  annotation.getAnnotationProperty(propertyName).getPropertyValues();
-		for (int i=0;i<result.size();i++){
-			String val = (String)result.get(i);
-			if (val.startsWith("%") && !val.startsWith("%%")){
-				val = getNLSPropertyValue(val);
-				result.set(i, val);
-				//also update property annotation to avoid needing to go thru bundle next time
-				annotation.getAnnotationProperty(propertyName).getPropertyValues().set(i, val);
-			}
-		}
-		return result;
-	}
-	
-	//will return null if there is an IOException with ResourceBundle
-	private String getNLSPropertyValue(String val){
-		String NOT_FOUND = "(key not found)";
-		try{
-			ResourceBundle resourceBundle = getResourceBundle();		
-			if (resourceBundle != null){
-				String replVal = resourceBundle.getString(val.substring(1));
-				return replVal;
-			}
-			else //return original string
-				return val; 
-		} catch (IOException e) {
-			JSFCorePlugin.log(e, "IOException for NLSPropertyValue: " + val);
-			return null;
-		} catch (MissingResourceException e){
-			//fall thru
-			JSFCorePlugin.log(e, "MissingResourceException for NLSPropertyValue: " + val);
-		}
-		return val.substring(1) + NOT_FOUND;
-	}
-	
-	/**
-	 * Return the ICMAnnotationSourceFileInfo used to create this CMAnnotationMap
-	 * @return ICMAnnotationSourceFileInfo
-	 */
-	public ICMAnnotationSourceFileInfo getFileInfo(){
-		return fileInfo;
-	}
-	
-	/**
-	 * @param String
-	 * @return string value used for case sensitive or insensitive queries.
-	 */
-	public String getStringValueForCaseSensitivity(String val){
-		return isCaseSensitive ? val : val.toLowerCase();
-	}
-
-	private ResourceBundle getResourceBundle() throws IOException{		
-		if (resourceBundle == null){		
-			resourceBundle = locator.getResourceBundle();
-		}
-		return resourceBundle;
-	}
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contentmodel/annotation/CMAttributeAnnotation.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contentmodel/annotation/CMAttributeAnnotation.java
deleted file mode 100644
index a7bab3a..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contentmodel/annotation/CMAttributeAnnotation.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Oracle Corporation.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Gerry Kessler/Oracle - initial API and implementation
- *    
- ********************************************************************************/
-
-package org.eclipse.jst.jsf.core.internal.contentmodel.annotation;
-
-/**
- * Represents an annotation on a content model attribute
- * 
- * @author Gerry Kessler - Oracle
- *
- * @see CMElementAnnotation
- */
-public class CMAttributeAnnotation extends CMAnnotation {
-	private String elementNodeSpec;
-	public CMAttributeAnnotation(String elemNodeSpec, String name) {
-		super(name);
-		elementNodeSpec = elemNodeSpec;
-	}
-
-	public String toString(){
-		StringBuffer buf = new StringBuffer("AttrAnnotation: ");
-		buf.append(getName()).append(": ").append(elementNodeSpec).append(": ").append(super.toString());
-		return buf.toString();
-	}
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contentmodel/annotation/CMElementAnnotation.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contentmodel/annotation/CMElementAnnotation.java
deleted file mode 100644
index 85a1eb4..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contentmodel/annotation/CMElementAnnotation.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Oracle Corporation.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Gerry Kessler/Oracle - initial API and implementation
- *    
- ********************************************************************************/
-
-package org.eclipse.jst.jsf.core.internal.contentmodel.annotation;
-
-import java.util.Hashtable;
-import java.util.Map;
-
-/**
- * Represents an annotation on a content model element.   
- * The element annotation object holds a map it's attribute annotations.
- * 
- * @author Gerry Kessler - Oracle
- * 
- * @see CMAttributeAnnotation
- */
-public class CMElementAnnotation extends CMAnnotation {
-	protected Hashtable attributes = new Hashtable();
-
-	public CMElementAnnotation(String name) {
-		super(name);
-	}
-
-	/**
-	 * Return this element annotations attribute annotations.
-	 * Will NOT be null but may be empty. 
-	 * @return Map
-	 */
-	public Map getAttributeAnnotations() {
-		return attributes;
-	}
-
-	/**
-	 * Add an attribute annotation to this element's attribute annotations map
-	 * 
-	 * @param attribute annotation
-	 */
-	public void addCMAttributeAnnotation(CMAttributeAnnotation annotation){
-		attributes.put(annotation.getName(), annotation);		
-	}
-	
-	public String toString(){
-		StringBuffer buf = new StringBuffer("ElementAnnotation: ");
-		buf.append(getName()).append(": ").append(super.toString());
-		return buf.toString();
-	}
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contentmodel/annotation/CMPluginRelativeSourceFileLocator.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contentmodel/annotation/CMPluginRelativeSourceFileLocator.java
deleted file mode 100644
index bde1cab..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contentmodel/annotation/CMPluginRelativeSourceFileLocator.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Oracle Corporation.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Gerry Kessler/Oracle - initial API and implementation
- *    
- ********************************************************************************/
-
-package org.eclipse.jst.jsf.core.internal.contentmodel.annotation;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ResourceBundle;
-
-import org.eclipse.core.runtime.FileLocator;
-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.provisional.contentmodel.annotation.CMAnnotationSourceFileLocator;
-
-/**
- * Default implementation of CMAnnotationSourceFileLocator that will locate annotations
- * and resource bundles relative to the plugin that extends annotationFiles.
- * 
- * @author Gerry Kessler - Oracle
- *
- */
-public class CMPluginRelativeSourceFileLocator extends CMAnnotationSourceFileLocator {
-	
-	/* 
-	 * Returns InputStream of annotation file from plugin relative location.
-	 * 
-	 * @see org.eclipse.jst.jsf.core.internal.contentmodel.internal.annotation.AbstractCMSourceFileLocator#getAnnotationSourceInputStream()
-	 */
-	public InputStream getAnnotationSourceInputStream() throws IOException {
-		URL url = FileLocator.find(Platform.getBundle(fileInfo.getBundleId()), Path.fromOSString(fileInfo.getAnnotationFileLocation()), null);
-		if (url != null) {
-			return url.openStream();
-		}
-		return null;
-	}
-
-	/* 
-	 * Returns property resource bundle if it exists.  May return null.
-	 * This implementation assumes that the basename of the bundle is the same 
-	 * as the source file name and in the same directory.
-	 * 
-	 * @see org.eclipse.jst.jsf.core.internal.provisional.contentmodel.annotation.ICMAnnotationSourceFileLocator#getResourceBundle()
-	 */
-	public ResourceBundle getResourceBundle() throws IOException, MalformedURLException {
-		URL bundleURL = getAnnotationPropertiesFileBasenameURL();
-		ResourceBundle resourceBundle = ResourceBundleHelper.getResourceBundle(getBaseNameURL(bundleURL));
-		return resourceBundle;
-	}
-	
-	private URL getAnnotationPropertiesFileBasenameURL()  {
-		IPath annotationPath = Path.fromOSString(fileInfo.getAnnotationFileLocation()); 
-		IPath annotationFolder = annotationPath.removeLastSegments(1);
-		IPath propertiesLocation = annotationPath.removeFirstSegments(annotationPath.segmentCount() - 1).removeFileExtension();
-		// append location of propertiles file
-		IPath propertiesFile = annotationFolder.append(propertiesLocation);
-	
-		// append .properties extension if needed
-		if (propertiesFile.getFileExtension() == null)
-			propertiesFile = propertiesFile.addFileExtension("properties"); //$NON-NLS-1$
-		// create a URL out of the properties file location
-		return FileLocator.find(Platform.getBundle(fileInfo.getBundleId()),
-				propertiesFile, null);
-	}
-
-	
-	private String getBaseNameURL(URL bundleURL) {
-		IPath url = new Path(bundleURL.toExternalForm());
-		if (url.getFileExtension() != null)
-			url = url.removeFileExtension();
-		return url.toString();
-	}
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contentmodel/annotation/ICMAnnotationAdvisor.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contentmodel/annotation/ICMAnnotationAdvisor.java
deleted file mode 100644
index 95924de..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contentmodel/annotation/ICMAnnotationAdvisor.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Oracle Corporation.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Gerry Kessler/Oracle - initial API and implementation
- *    
- ********************************************************************************/
-
-package org.eclipse.jst.jsf.core.internal.contentmodel.annotation;
-
-import org.eclipse.jst.jsf.core.internal.provisional.contentmodel.annotation.ICMAnnotationSourceFileInfo;
-
-
-/**
- * Interface used to build internal data model of annotations.   
- * Decouples the data model from the parser so that model can be changed in the future.
- * 
- * Not intended to be implemented by others.
- * 
- * @author Gerry Kessler - Oracle
- * @see org.eclipse.jst.jsf.core.internal.contentmodel.annotation.CMAnnotationAdvisor
- * 
- */
-public interface ICMAnnotationAdvisor {
-	/**
-	 * Returns annotationFile extension information
-	 * @return ICMAnnotationSourceFileInfo 
-	 */
-	public ICMAnnotationSourceFileInfo getFileInfo();
-	/**
-	 * Set whether or not elements, attributes and property name querying is case sensitive or not.
-	 * @param boolean
-	 */
-	public void setCaseSensitive(boolean val);
-	/**
-	 * Method to be used by a ICMAnnotationFileParser to assign a property and a value 
-	 * to an element in a particular content model defined by the ICMAnnotationSourceFileInfo.
-	 * 
-	 * @param elementName
-	 * @param propertyName
-	 * @param propertyValue
-	 * 
-	 * @see org.eclipse.jst.jsf.core.internal.provisional.contentmodel.annotation.ICMAnnotationFileParser
-	 * @see org.eclipse.jst.jsf.core.internal.provisional.contentmodel.annotation.ICMAnnotationSourceFileInfo
-	 */
-	public void addElementAnnotation(String elementName, String propertyName, String propertyValue);
-	/**
-	 * Method to be used by a ICMAnnotationFileParser to assign a property and a value 
-	 * to an attribute of an element in a particular content model defined by the ICMAnnotationSourceFileInfo.
-	 * 
-	 * @param elementName
-	 * @param propertyName
-	 * @param propertyValue
-	 * 
-	 * @see org.eclipse.jst.jsf.core.internal.provisional.contentmodel.annotation.ICMAnnotationFileParser
-	 * @see org.eclipse.jst.jsf.core.internal.provisional.contentmodel.annotation.ICMAnnotationSourceFileInfo
-	 */
-	public void addAttributeAnnotation(String elementName, String attributeName, String propertyName, String propertyValue);
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contentmodel/annotation/ResourceBundleHelper.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contentmodel/annotation/ResourceBundleHelper.java
deleted file mode 100644
index 0c295ea..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/contentmodel/annotation/ResourceBundleHelper.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     Gerry Kessler/Oracle - copied from org.eclipse.wst.sse.core.internal.encoding.util and modified
- *******************************************************************************/
-package org.eclipse.jst.jsf.core.internal.contentmodel.annotation;
-
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.util.Locale;
-import java.util.ResourceBundle;
-
-import org.eclipse.core.runtime.FileLocator;
-
-public class ResourceBundleHelper {
-
-	public static ResourceBundle getResourceBundle(String resourceURI) throws MalformedURLException, IOException {
-		return getResourceBundle(resourceURI, Locale.getDefault());
-	}
-
-	public static ResourceBundle getResourceBundle(String resourceURI, Locale targetLocale) throws MalformedURLException, IOException {
-		// try to load bundle from the location specified in the resourceURI
-		// we make the assumption that the resourceURI points to the local
-		// file system
-
-		int index = resourceURI.lastIndexOf("/"); //$NON-NLS-1$
-		if (index == -1) {
-			throw new IllegalArgumentException("Invalid resourceURI"); //$NON-NLS-1$
-		}
-
-		// Below we set 'resourceDirectory' so that it ends with a '/'.
-		// Here's an excerpt from the ClassLoader Javadoc ...
-		// Any URL that ends with a '/' is assumed to refer to a directory.
-		// Otherwise, the URL is assumed
-		// to refer to a JAR file which will be opened as needed.
-		//
-		String resourceDirectory = resourceURI.substring(0, index + 1);
-		String resourceBundleName = resourceURI.substring(index + 1);
-
-		// create a class loader with a class path that points to the resource
-		// bundle's location
-		//         
-		URL[] classpath = new URL[1];
-		classpath[0] = FileLocator.resolve(new URL(resourceDirectory));
-		ClassLoader resourceLoader = new URLClassLoader(classpath, null);
-
-		return ResourceBundle.getBundle(resourceBundleName, targetLocale, resourceLoader);
-	}
-}
-
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 e49fded..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/messages.properties
+++ /dev/null
@@ -1,37 +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
-
-JSFAppConfigManager_InvalidWriteAccess=Invalid write access mode attempted for model
\ 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/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/contentmodel/annotation/CMAnnotationHelper.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/contentmodel/annotation/CMAnnotationHelper.java
deleted file mode 100644
index c27833e..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/contentmodel/annotation/CMAnnotationHelper.java
+++ /dev/null
@@ -1,267 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Oracle Corporation.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Gerry Kessler/Oracle - initial API and implementation
- *    
- ********************************************************************************/
-
-package org.eclipse.jst.jsf.core.internal.provisional.contentmodel.annotation;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jst.jsf.core.internal.contentmodel.annotation.CMAnnotation;
-import org.eclipse.jst.jsf.core.internal.contentmodel.annotation.CMAnnotationFileRegistry;
-import org.eclipse.jst.jsf.core.internal.contentmodel.annotation.CMAnnotationMap;
-import org.eclipse.jst.jsf.core.internal.contentmodel.annotation.CMAttributeAnnotation;
-
-/**
- * Class meant for all public access to the design-time meta-data (CMAnnotations) values.
- * 
- * <li>Annotation files are registered against a uri (eg. http://java.sun.com/jsf/core) 
- * using the extension-point <code>org.eclipse.jst.jsf.core.annotationFiles</code>.</li>
- * <li>Any number of annotation files can be associated with the uri and against any element or attribute.</li>
- * <li>It is recommended that a single plugin should avoid registering meta-data for the same attribute or element 
- * from different annotationFiles.</li>
- * <li>A CMAnnotation allows for a collection of property values for a named property.</li>  
- * <li>Querying the registry using this helper class can return lists of <code>CMAnnotationPropertyValue</code> 
- * which allows the caller to make the determination of whether the property value is of interest or not.</li> 
- * <li>The caller can also query the registry for specific plugin supplied annotation meta-data.</li>
- * 
- * <li>-- include link to doc--</li>
- * 
- * @see CMElementAnnotation
- * @see CMAttributeAnnotation
- * @see CMAnnotationPropertyValue
- * @see org.eclipse.jst.jsf.core.annotationFiles extension-point
- */
-public class CMAnnotationHelper {
-
-	/**
-	 * Returns a list of CMAnnotationPropertyValue objects for a given property name and uri/tag/tag attribute combo.
-	 * A list is being returned because it is possible that there are multiple annotation files with the same 
-	 * named property.  Caller can decide what to do.
-	 * 
-	 * Can return null if annotation is not found or meta-data property name not present.
-	 * 
-	 * @param uri
-	 * @param cmElementName
-	 * @param cmAttrName
-	 * @param meta_prop_name
-	 * @return list of CMAnnotationPropertyValue objects
-	 */
-	public static List getCMAttributeProperties(String uri, String cmElementName, String cmAttrName, String meta_prop_name) {
-		return getCMAttributeProperties(null, uri, cmElementName, cmAttrName, meta_prop_name);
-	}
-	
-
-	/**
-	 * Returns a list of CMAnnotationPropertyValue objects for a given bundleId, property name and uri/tag/tag attribute combo.
-	 * A list is being returned because it is possible that there are multiple annotation files with the same 
-	 * named property.  Caller can decide what to do.
-	 * 
-	 * Use this method if you are not looking for a property value from a specific bundle.  Usually the caller.
-	 * 
-	 * Can return null if annotation is not found or meta-data property name not present.
-	 * 
-	 * @param bundleId
-	 * @param uri
-	 * @param cmElementName
-	 * @param cmAttrName
-	 * @param meta_prop_name
-	 * @return list of CMAnnotationPropertyValue objects
-	 */
-	public static List getCMAttributeProperties(String bundleId, String uri, String cmElementName, String cmAttrName, String meta_prop_name) {
-		if (!CMAnnotationFileRegistry.getInstance().hasAnnotations(uri))			
-			return null;
-		
-		List list = new ArrayList();
-		List maps = CMAnnotationFileRegistry.getInstance().getAnnotationMaps(uri);
-		if (maps != null){
-			Iterator it = maps.iterator();
-			while (it.hasNext()){
-				CMAnnotationMap map = (CMAnnotationMap)it.next();
-				if (bundleId == null || map.getFileInfo().getBundleId().equals(bundleId)){
-					CMAnnotationPropertyValue propVal =  map.getCMAttributePropertyValue(cmElementName, cmAttrName, meta_prop_name);
-					if (propVal != null){
-						list.add(propVal);
-					}
-				}
-			}
-		}
-		return list.isEmpty() ? null : list;
-	}
-	
-	/**
-	 * Convenience method to return the first string value for a given bundle, uri, element, attr, and meta_prop_name.
-	 * Caller needs to be aware that this could be a multi-value property.  If so, <code>getCMAttributePropertyValues</code>
-	 * should probably be called.
-	 * 
-	 * Caller must be sure that only one annotation meta-data file is associated with this uri from the specified bundle.  
-	 * If there are multiple annotations, only the first bundle's values will be returned.
-	 * 
-	 * Can return null if annotation is not found or meta-data property name not present.
-	 * 
-	 * @param bundleId
-	 * @param uri
-	 * @param cmElementName
-	 * @param cmAttrName
-	 * @param meta_prop_name
-	 * @return property value as String
-	 */
-	public static String getCMAttributePropertyValue(String bundleId, String uri, String cmElementName, String cmAttrName, String meta_prop_name){
-		List vals = getCMAttributeProperties(bundleId, uri, cmElementName, cmAttrName, meta_prop_name);
-		if (vals != null && !vals.isEmpty()){
-			return((CMAnnotationPropertyValue)vals.get(0)).getPropertyValue();
-		}
-		return null;
-	}
-	
-	/**
-	 * Convenience method to return the list of property values for a given bundle, uri, element, attr, and meta_prop_name.
-	 * 
-	 * Caller must be sure that only one annotation meta-data file is associated with this uri from the specified bundle.  
-	 * If there are multiple annotations, only the first bundle's values will be returned.
-	 * 
-	 * Can return null if annotation is not found or meta-data property name not present.
-	 * 
-	 * @param bundleId
-	 * @param uri
-	 * @param cmElementName
-	 * @param cmAttrName
-	 * @param meta_prop_name
-	 * @return property values as List
-	 */
-	public static List getCMAttributePropertyValues(String bundleId, String uri, String cmElementName, String cmAttrName, String meta_prop_name){
-		List vals = getCMAttributeProperties(bundleId, uri, cmElementName, cmAttrName, meta_prop_name);
-		if (vals != null){
-			return((CMAnnotationPropertyValue)vals.get(0)).getPropertyValues();
-		}
-		return null;
-	}
-	/**
-	 * Returns a list of CMAnnotationPropertyValue objects for a given property name and uri/tag element combo.
-	 * A list is being returned because it is possible that there are multiple annotation files with the same 
-	 * named property.  Caller can decide what to do.
-	 * 
-	 * Can return null if annotation is not found or meta-data property name not present.
-	 * 
-	 * @param uri
-	 * @param cmElementName
-	 * @param cmAttrName
-	 * @param meta_prop_name
-	 * @return list of CMAnnotationPropertyValue objects
-	 */
-	public static List getCMElementProperties(String uri, String cmElementName, String meta_prop_name) {
-		return getCMElementProperties(null, uri, cmElementName, meta_prop_name);
-	}
-
-	
-	/**
-	 * Returns a list of CMAnnotationPropertyValue objects for a given bundle, property name and uri/tag element combo.
-	 * A list is being returned because it is possible that there are multiple annotation files with the same 
-	 * named property.  Caller can decide what to do.
-	 * 
-	 * Use this method if you are not looking for a property value from a specific bundle.  Usually the caller.
-	 * 
-	 * Can return null if annotation is not found or meta-data property name not present.
-	 * 
-	 * @param bundleId
-	 * @param uri
-	 * @param cmElementName
-	 * @param cmAttrName
-	 * @param meta_prop_name
-	 * @return list of CMAnnotationPropertyValue objects
-	 */
-	public static List getCMElementProperties(String bundleId, String uri, String cmElementName, String meta_prop_name) {
-		if (!CMAnnotationFileRegistry.getInstance().hasAnnotations(uri))			
-			return null;
-		
-		List list = new ArrayList();
-		List maps = CMAnnotationFileRegistry.getInstance().getAnnotationMaps(uri);
-		if (maps != null){
-			Iterator it = maps.iterator();
-			while (it.hasNext()){
-				CMAnnotationMap map = (CMAnnotationMap)it.next();
-				if (bundleId == null || map.getFileInfo().getBundleId().equals(bundleId)){
-					CMAnnotationPropertyValue propVal =  map.getCMElementPropertyValue(cmElementName, meta_prop_name);
-					if (propVal != null){
-						list.add(propVal);
-					}
-				}
-			}
-		}
-		return list.isEmpty() ? null : list;
-	}
-	
-	/**
-	 * Convenience method to return the first string value for a given bundle, uri, element, and meta_prop_name.
-	 * Caller needs to be aware that this could be a multi-value property.  If so, <code>getCMAttributePropertyValues</code>
-	 * should probably be called.
-	 * 
-	 * Caller must be sure that only one annotation meta-data file is associated with this uri from the specified bundle.  
-	 * If there are multiple annotations, only the first bundle's values will be returned.
-	 * 
-	 * Can return null if annotation is not found or meta-data property name not present.
-	 * 
-	 * @param bundleId
-	 * @param uri
-	 * @param cmElementName
-	 * @param meta_prop_name
-	 * @return property value as String
-	 */
-	public static String getCMElementPropertyValue(String bundleId, String uri, String cmElementName, String meta_prop_name){
-		List vals = getCMElementProperties(bundleId, uri, cmElementName, meta_prop_name);
-		if (vals != null){
-			return((CMAnnotationPropertyValue)vals.get(0)).getPropertyValue();
-		}
-		return null;
-	}
-	
-	/**
-	 * Convenience method to return the list of property values for a given bundle, uri, element, and meta_prop_name.
-	 * 
-	 * Caller must be sure that only one annotation meta-data file is associated with this uri from the specified bundle.  
-	 * If there are multiple annotations, only the first bundle's values will be returned.
-	 * 
-	 * Can return null.
-	 * 
-	 * @param bundleId
-	 * @param uri
-	 * @param cmElementName
-	 * @param meta_prop_name
-	 * @return List of property values as Strings 
-	 */
-	public static List getCMElementPropertyValues(String bundleId, String uri, String cmElementName, String meta_prop_name){
-		List vals = getCMElementProperties(bundleId, uri, cmElementName, meta_prop_name);
-		if (vals != null){
-			return((CMAnnotationPropertyValue)vals.get(0)).getPropertyValues();
-		}
-		return null;
-	}
-	
-	/**
-	 * Return whether or not there are annotation files for a given uri and bundleId.
-	 * @param bundleId
-	 * @param uri
-	 * @return boolean
-	 */
-	public static boolean hasAnnotations(String bundleId, String uri) {
-		return CMAnnotationFileRegistry.getInstance().hasAnnotations(bundleId, uri);
-	}
-	
-	/**
-	 * Return whether or not there are annotation files for a given uri.
-	 * @param uri
-	 * @return boolean 
-	 */
-	public static boolean hasAnnotations(String uri) {
-		return CMAnnotationFileRegistry.getInstance().hasAnnotations(uri);
-	}
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/contentmodel/annotation/CMAnnotationPropertyValue.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/contentmodel/annotation/CMAnnotationPropertyValue.java
deleted file mode 100644
index eca5213..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/contentmodel/annotation/CMAnnotationPropertyValue.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Oracle Corporation.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Gerry Kessler/Oracle - initial API and implementation
- *    
- ********************************************************************************/
-
-package org.eclipse.jst.jsf.core.internal.provisional.contentmodel.annotation;
-
-import java.util.List;
-
-/**
- * The class used to return result of a query on the annotation model.   
- * 
- * @author Gerry Kessler - Oracle
- *
- */
-public class CMAnnotationPropertyValue {
-	private ICMAnnotationSourceFileInfo fileInfo;
-	private List propertyValues;
-	
-	public CMAnnotationPropertyValue(ICMAnnotationSourceFileInfo fileInfo, List propertyValues){
-		this.fileInfo = fileInfo;
-		this.propertyValues = propertyValues;
-	}
-
-	/**
-	 * Convenience method for accessing the bundleid
-	 * @return String
-	 */
-	public String getBundleId(){
-		return fileInfo.getBundleId();
-	}
-	
-	/**
-	 * @return ICMAnnotationSourceFileInfo used to define this property
-	 */
-	public ICMAnnotationSourceFileInfo getFileInfo(){
-		return fileInfo;
-	}
-	
-	/**
-	 * Return first string property value.   
-	 * If caller expects more values, they should use getPropertyValues().
-	 * @return String  
-	 */
-	public String getPropertyValue(){
-		return (String)propertyValues.get(0);
-	}
-	
-	/**
-	 * Return list of property values as strings for the given property
-	 * @return java.util.List
-	 */
-	public List getPropertyValues(){
-		return propertyValues;
-	}
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/contentmodel/annotation/CMAnnotationSourceFileLocator.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/contentmodel/annotation/CMAnnotationSourceFileLocator.java
deleted file mode 100644
index 814f154..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/contentmodel/annotation/CMAnnotationSourceFileLocator.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Oracle Corporation.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Gerry Kessler/Oracle - initial API and implementation
- *    
- ********************************************************************************/
-
-package org.eclipse.jst.jsf.core.internal.provisional.contentmodel.annotation;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-
-/**
- * Used to supply an InputStream to the parser of an annotation 
- * meta-data file and the URL to the resource bundle for a properties file, if any.
- * 
- * Implementors must provide a zero-argument constructor.
- * 
- * @author Gerry Kessler - Oracle
- *
- */ 
-public abstract class CMAnnotationSourceFileLocator{
-	protected ICMAnnotationSourceFileInfo fileInfo;
-	
-	public final void setFileInfo(ICMAnnotationSourceFileInfo fileInfo){
-		this.fileInfo = fileInfo;
-	}
-	
-	protected final ICMAnnotationSourceFileInfo getFileInfo(){
-		return fileInfo;
-	}
-	/**
-	 * Return InputStream to the meta-data annotation.  
-	 * Callers are responsble for closing the stream.
-	 * @return InputStream
-	 * @throws IOException
-	 */
-	public abstract InputStream getAnnotationSourceInputStream() throws IOException;
-	/**
-	 * Return ResourceBundle for the property files if there are any.  Return null if not.
-	 * 
-	 * @return java.util.ResourceBundle
-	 * @throws IOException
-	 * @throws MissingResourceException
-	 */
-	public abstract ResourceBundle getResourceBundle() throws IOException, MissingResourceException;
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/contentmodel/annotation/CMSourceFileLocator.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/contentmodel/annotation/CMSourceFileLocator.java
deleted file mode 100644
index 94ebeba..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/contentmodel/annotation/CMSourceFileLocator.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package org.eclipse.jst.jsf.core.internal.provisional.contentmodel.annotation;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-
-/**
- * Used to supply an InputStream to the parser of an annotation 
- * meta-data file and the URL to resource bundle for a properties file, if any.
- * 
- * Implementors must provide a zero-argument constructor.
- *
- */
-public abstract class CMSourceFileLocator{
-	protected ICMAnnotationSourceFileInfo fileInfo;
-	
-	public final void setFileInfo(ICMAnnotationSourceFileInfo fileInfo){
-		this.fileInfo = fileInfo;
-	}
-	
-	protected final ICMAnnotationSourceFileInfo getFileInfo(){
-		return fileInfo;
-	}
-	/**
-	 * Return InputStream to the meta-data annotation.  Callers will be responsble for closing the stream.
-	 * @return InputStream
-	 * @throws IOException
-	 */
-	public abstract InputStream getAnnotationSourceInputStream() throws IOException;
-	/**
-	 * Return ResourceBundle for the property files if there are any.  Return null if not.
-	 * 
-	 * @return java.util.ResourceBundle
-	 * @throws IOException
-	 * @throws MissingResourceException
-	 */
-	public abstract ResourceBundle getResourceBundle() throws IOException, MissingResourceException;
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/contentmodel/annotation/ICMAnnotationFileParser.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/contentmodel/annotation/ICMAnnotationFileParser.java
deleted file mode 100644
index a495767..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/contentmodel/annotation/ICMAnnotationFileParser.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Oracle Corporation.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Gerry Kessler/Oracle - initial API and implementation
- *    
- ********************************************************************************/
-package org.eclipse.jst.jsf.core.internal.provisional.contentmodel.annotation;
-
-import org.eclipse.jst.jsf.core.internal.contentmodel.annotation.ICMAnnotationAdvisor;
-
-/**
- * Interface used to allow parsing of meta-data files that do not conform to the default schema provided.
- *  
- * @author Gerry Kessler - Oracle
- * 
- * @see ext-pt: <code>org.eclipse.jst.jsf.core.annotationFile</code> 
- * @see xml schema defn: <code>http://org.eclipse.jst.jsf.core/grammarAnnotationSchema</code>
- * @see <code>org.eclipse.jst.jsf.core.internal.contentmodel.annotation.ICMAnnotationAdvisor</code>
- * @see <code>org.eclipse.jst.jsf.core.internal.provisional.contentmodel.annotation.CMAnnotationSourceFileLocator</code>
- */
-public interface ICMAnnotationFileParser {
-
-	/**
-	 * Parse the annotation file using the InputStream provided by the locator and   
-	 * using the ICMAnnotationAdvisor methods to fill the internal model.
-	 * 
-	 * The implementor is responsible for closing the inputstream when parse is complete.
-	 * 
-	 * @param ICMAnnotationAdvisor advisor
-	 * @param ICMAnnotationSourceFileLocator locator
-	 * @throws Exception
-	 */
-	public void parse(ICMAnnotationAdvisor advisor, CMAnnotationSourceFileLocator locator) throws Exception;
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/contentmodel/annotation/ICMAnnotationSourceFileInfo.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/contentmodel/annotation/ICMAnnotationSourceFileInfo.java
deleted file mode 100644
index 9062190..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/contentmodel/annotation/ICMAnnotationSourceFileInfo.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Oracle Corporation.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Gerry Kessler/Oracle - initial API and implementation
- *    
- ********************************************************************************/
-
-package org.eclipse.jst.jsf.core.internal.provisional.contentmodel.annotation;
-
-/**
- * The interface used to access information about the annotationFile extension
- * 
- * Not intended to be implemented by clients.
- * @author Gerry Kessler - Oracle
- *
- */
-public interface ICMAnnotationSourceFileInfo {
-	public String getAnnotationFileLocation();
-	public String getBundleId();
-	public String getParserClassName();
-	public String getAnnotationFileLocatorClassname();
-}
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 f2f95c8..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/ArtifactEditJSFAppConfigProvider.java
+++ /dev/null
@@ -1,92 +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.core.internal.Messages;
-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(boolean)
-	 */
-	public FacesConfigType getFacesConfigModel(boolean forWrite) throws InvalidWriteAccessModeException {
-		FacesConfigType facesConfig = null;
-		if (appConfigFile != null) {
-			IProject project = appConfigFile.getProject();
-			IPath appConfigFilePath = JSFAppConfigUtils.getWebContentFolderRelativePath(appConfigFile);
-			if (appConfigFilePath != null) {
-				if (forWrite) {
-					if (!allowsWrite()) {
-						throw new InvalidWriteAccessModeException(Messages.JSFAppConfigManager_InvalidWriteAccess);
-					}
-					facesConfigArtifactEdit = FacesConfigArtifactEdit.getFacesConfigArtifactEditForWrite(project, appConfigFilePath.toString());
-				} else {
-					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 org.eclipse.jst.jsf.core.internal.provisional.jsfappconfig.IJSFAppConfigProvider#allowsWrite()
-	 */
-	public boolean allowsWrite() {
-		return true;
-	}
-
-}
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 f21a2e7..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/ContextParamSpecifiedJSFAppConfigLocater.java
+++ /dev/null
@@ -1,44 +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.IProject;
-
-/**
- * ContextParamSpecifiedJSFAppConfigLocater attempts to locate application
- * configuration files specified by the JSF CONFIG_FILES context parameter.
- * 
- * @author Ian Trimble - Oracle
- */
-public class ContextParamSpecifiedJSFAppConfigLocater extends WebContentRelativeJSFAppConfigLocater {
-
-	/**
-	 * IProject instance obtained from the JSFAppConfigManager instance.
-	 */
-	protected IProject project = null;
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jst.jsf.core.internal.provisional.jsfappconfig.IJSFAppConfigLocater#locateProviders(org.eclipse.jst.jsf.core.internal.provisional.jsfappconfig.JSFAppConfigManager)
-	 */
-	public void locateProviders(JSFAppConfigManager manager) {
-		project = manager.getProject();
-		super.locateProviders(manager);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.jst.jsf.core.internal.provisional.jsfappconfig.WebContentRelativeJSFAppConfigLocater#getFilenames()
-	 */
-	protected String[] getFilenames() {
-		return JSFAppConfigUtils.getConfigFilesFromContextParam(project);
-	}
-
-}
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 fde0465..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/DefaultJSFAppConfigLocater.java
+++ /dev/null
@@ -1,36 +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;
-
-/**
- * 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.IJSFAppConfigLocater#locateProviders(org.eclipse.jst.jsf.core.internal.provisional.jsfappconfig.JSFAppConfigManager)
-	 */
-	public void locateProviders(JSFAppConfigManager manager) {
-		super.locateProviders(manager);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.jst.jsf.core.internal.provisional.jsfappconfig.WebContentRelativeJSFAppConfigLocater#getFilenames()
-	 */
-	protected String[] getFilenames() {
-		return new String[] {"WEB-INF/faces-config.xml"}; //$NON-NLS-1$
-	}
-
-}
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 e347e68..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/IJSFAppConfigLocater.java
+++ /dev/null
@@ -1,32 +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;
-
-/**
- * IJSFAppConfigLocater is the interface that Objects capable of locating
- * JSF application configuration resource files and creating
- * {@link IJSFAppConfigProvider} instances to add to a
- * {@link JSFAppConfigManager} instance must implement.
- * 
- * @author Ian Trimble - Oracle
- */
-public interface IJSFAppConfigLocater {
-
-	/**
-	 * Locates and adds {@link IJSFAppConfigProvider} instances to the passed
-	 * {@link JSFAppConfigManager} instance.
-	 * 
-	 * @param manager {@link JSFAppConfigManager} instance to which
-	 * {@link IJSFAppConfigProvider} instances are added.
-	 */
-	public void locateProviders(JSFAppConfigManager manager);
-
-}
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 fd4ec4c..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/IJSFAppConfigProvider.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 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
-	 * or write access.
-	 * 
-	 * @param forWrite If true, gets the model for write access.
-	 * @return FacesConfigType instance, which is the root element of an
-	 * application configuration model.
-	 * @exception InvalidWriteAccessModeException thrown if model is attempted to be accessed
-	 * in write mode when not supported.
-	 */
-	public FacesConfigType getFacesConfigModel(boolean forWrite) throws InvalidWriteAccessModeException;
-
-	/**
-	 * Releases resources associated with acquiring the application
-	 * configuration model (if any).
-	 */
-	public void releaseFacesConfigModel();
-
-	/**
-	 * Indicates if this instance allows model to be opened for write access.
-	 * 
-	 * @return true if write access is allowed, else false.
-	 */
-	public boolean allowsWrite();
-
-}
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/InvalidWriteAccessModeException.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/InvalidWriteAccessModeException.java
deleted file mode 100644
index 55b815b..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/InvalidWriteAccessModeException.java
+++ /dev/null
@@ -1,61 +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;
-
-/**
- * InvalidWriteAccessModeException is thrown to indicate a model was attempted to be opened
- * with an access mode (e.g. read, write) that it does not support.
- * 
- * @author Ian Trimble - Oracle
- */
-public class InvalidWriteAccessModeException extends Exception {
-
-	/**
-	 * Serial version ID
-	 */
-	private static final long serialVersionUID = -530337988461606646L;
-
-	/**
-	 * Creates an instance.
-	 */
-	public InvalidWriteAccessModeException() {
-		super();
-	}
-
-	/**
-	 * Creates an instance with the passed message.
-	 * 
-	 * @param message Message indicating reason for exception.
-	 */
-	public InvalidWriteAccessModeException(String message) {
-		super(message);
-	}
-
-	/**
-	 * Creates an instance with the passed message and root cause.
-	 * 
-	 * @param message Message indicating reason for exception.
-	 * @param cause Root cause of exception.
-	 */
-	public InvalidWriteAccessModeException(String message, Throwable cause) {
-		super(message, cause);
-	}
-
-	/**
-	 * Creates an instance with the passed root cause.
-	 * 
-	 * @param cause Root cause of exception.
-	 */
-	public InvalidWriteAccessModeException(Throwable cause) {
-		super(cause);
-	}
-
-}
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 4c6021e..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/JARFileJSFAppConfigProvider.java
+++ /dev/null
@@ -1,108 +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.core.internal.Messages;
-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;
-
-	/**
-	 * 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(boolean)
-	 */
-	public FacesConfigType getFacesConfigModel(boolean forWrite) throws InvalidWriteAccessModeException {
-		FacesConfigType facesConfig = null;
-		if (forWrite && !allowsWrite()) {
-			throw new InvalidWriteAccessModeException(Messages.JSFAppConfigManager_InvalidWriteAccess);
-		}
-		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() {
-		//nothing to do
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jst.jsf.core.internal.provisional.jsfappconfig.IJSFAppConfigProvider#allowsWrite()
-	 */
-	public boolean allowsWrite() {
-		return false;
-	}
-
-}
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 54ca77d..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/JSFAppConfigManager.java
+++ /dev/null
@@ -1,379 +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.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.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;
-
-	/**
-	 * Set of {@link IJSFAppConfigProvider} instances.
-	 */
-	protected LinkedHashSet configProviders = null;
-
-	/**
-	 * Collection of {@link IJSFAppConfigProvidersChangeListener} instances.
-	 */
-	protected ArrayList configProvidersChangeListeners = null;
-
-	/**
-	 * Set of {@link IJSFAppConfigLocater} instances.
-	 */
-	protected LinkedHashSet configLocaters = null;
-
-	/**
-	 * 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 configProviders Set</li>
-	 * 	<li>creating configProvidersChangeListeners collection</li>
-	 * 	<li>creating and populating configLocaters Set</li>
-	 * 	<li>invoking the locateProviders(...) method on all configLocaters</li>
-	 * 	<li>setting instance as a session property of the IProject instance</li>
-	 * </ul>
-	 */
-	protected void initialize() {
-		//create collections
-		configProviders = new LinkedHashSet();
-		configProvidersChangeListeners = new ArrayList();
-		configLocaters = new LinkedHashSet();
-		//populate initial Set of locaters
-		populateConfigLocaters();
-		//locate config providers (no need to clear; collection just created)
-		locateConfigProviders(false);
-		//set as session property of project
-		setAsSessionProperty();
-	}
-
-	/**
-	 * Populates configLocaters Set with "built-in" set of
-	 * {@link IJSFAppConfigLocater} implementations.
-	 */
-	protected void populateConfigLocaters() {
-		configLocaters.add(new DefaultJSFAppConfigLocater());
-		configLocaters.add(new ContextParamSpecifiedJSFAppConfigLocater());
-		configLocaters.add(new RuntimeClasspathJSFAppConfigLocater());
-	}
-
-	/**
-	 * Optionally clears known {@link IJSFAppConfigProvider} instances then
-	 * invokes the locate(JSFAppConfigManager) method of all known
-	 * {@link IJSFAppConfigLocater} instances.
-	 * 
-	 * @param clearFirst If true, clears known {@link IJSFAppConfigProvider}
-	 * instances before invoking known {@link IJSFAppConfigLocater} instances
-	 */
-	public void locateConfigProviders(boolean clearFirst) {
-		//clear known providers if requested
-		if (clearFirst) {
-			disposeConfigProviders();
-			configProviders.clear();
-		}
-		//invoke locateProviders method on all known locaters
-		Iterator itConfigLocaters = configLocaters.iterator();
-		while (itConfigLocaters.hasNext()) {
-			IJSFAppConfigLocater configLocater = (IJSFAppConfigLocater)itConfigLocaters.next();
-			configLocater.locateProviders(this);
-		}
-	}
-
-	/**
-	 * Calls releaseFacesConfigModel() method on all known
-	 * {@link IJSFAppConfigProvider} instances, in preparation for clearing
-	 * of known instances.
-	 */
-	public void disposeConfigProviders() {
-		Iterator itConfigProviders = configProviders.iterator();
-		while (itConfigProviders.hasNext()) {
-			IJSFAppConfigProvider configProvider = (IJSFAppConfigProvider)itConfigProviders.next();
-			configProvider.releaseFacesConfigModel();
-		}
-	}
-
-	/**
-	 * 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);
-			}
-		}
-	}
-
-	/**
-	 * Adds an instance of IJSFAppConfigProvider to the configProviders Set.
-	 * 
-	 * @param configProvider Instance of IJSFAppConfigProvider.
-	 * @return true if instance was added (if it did not already exist in the
-	 * Set), else false.
-	 */
-	public boolean addJSFAppConfigProvider(IJSFAppConfigProvider configProvider) {
-		boolean added = configProviders.add(configProvider);
-		if (added) {
-			notifyJSFAppConfigProvidersChangeListeners(
-					configProvider, JSFAppConfigProvidersChangeEvent.ADDED);
-		}
-		return added;
-	}
-
-	/**
-	 * Removes an instance of IJSFAppConfigProvider from the configProviders
-	 * Set.
-	 * 
-	 * @param configProvider Instance of IJSFAppConfigProvider.
-	 * @return true if instance was removed (if it existed in the Set), else
-	 * false.
-	 */
-	public boolean removeJSFAppConfigProvider(IJSFAppConfigProvider configProvider) {
-		if (configProvider != null) {
-			configProvider.releaseFacesConfigModel();
-		}
-		boolean removed = configProviders.remove(configProvider);
-		if (removed) {
-			notifyJSFAppConfigProvidersChangeListeners(
-				configProvider, JSFAppConfigProvidersChangeEvent.REMOVED);
-		}
-		return removed;
-	}
-
-	/**
-	 * 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
-	 */
-	protected 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 array of all FacesConfigType instances for read access.
-	 * 
-	 * @return Array of all FacesConfigType instances for read access.
-	 */
-	public FacesConfigType[] getFacesConfigModelsForRead() {
-		ArrayList facesConfigList = new ArrayList();
-		Iterator itConfigProviders = configProviders.iterator();
-		while (itConfigProviders.hasNext()) {
-			IJSFAppConfigProvider configProvider = (IJSFAppConfigProvider)itConfigProviders.next();
-			try {
-				FacesConfigType facesConfig = configProvider.getFacesConfigModel(false);
-				if (facesConfig != null) {
-					facesConfigList.add(facesConfig);
-				}
-			} catch (InvalidWriteAccessModeException iwame) {
-				//log error
-				JSFCorePlugin.log(IStatus.ERROR, iwame.getLocalizedMessage(), iwame);
-			}
-		}
-		FacesConfigType[] facesConfigs = new FacesConfigType[facesConfigList.size()];
-		facesConfigs = (FacesConfigType[])facesConfigList.toArray(facesConfigs);
-		return facesConfigs;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see java.lang.Object#finalize()
-	 */
-	protected void finalize() {
-		//remove session property from project
-		unsetAsSessionProperty();
-		//clear collections
-		configLocaters.clear();
-		configProvidersChangeListeners.clear();
-		//release all models from providers
-		disposeConfigProviders();
-		configProviders.clear();
-	}
-
-}
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 0a84004..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/JSFAppConfigUtils.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:
- *    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.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 array of application configuration file names as listed in the JSF
-	 * CONFIG_FILES context parameter ("javax.faces.CONFIG_FILES"). Will return
-	 * an empty array 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 Array of application configuration file names as listed in the
-	 * JSF CONFIG_FILES context parameter ("javax.faces.CONFIG_FILES"); array
-	 * may be empty.
-	 */
-	public static String[] getConfigFilesFromContextParam(IProject project) {
-		String[] files = null;
-		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();
-		}
-		files = new String[filesList.size()];
-		files = (String[])filesList.toArray(files);
-		return files;
-	}
-
-	/**
-	 * Gets array 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 array if no such JAR files are located.
-	 * 
-	 * @param project IProject instance for which to scan the classpath.
-	 * @return Array of JAR file names, where each file name represents a JAR
-	 * on the classpath that contains a ...META-INF/faces-config.xml entry;
-	 * array 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 String[] getConfigFileJARsFromClasspath(IProject project) throws CoreException, IOException {
-		String[] JARs = null;
-		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);
-									}
-								}
-							}
-						}
-					}
-				}
-			}
-		}
-		JARs = new String[JARsList.size()];
-		JARs = (String[])JARsList.toArray(JARs);
-		return JARs;
-	}
-
-}
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 7d58135..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/RuntimeClasspathJSFAppConfigLocater.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:
- *    Ian Trimble - initial API and implementation
- *******************************************************************************/ 
-package org.eclipse.jst.jsf.core.internal.provisional.jsfappconfig;
-
-import java.io.IOException;
-
-import org.eclipse.core.resources.IProject;
-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 implements IJSFAppConfigLocater {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jst.jsf.core.internal.provisional.jsfappconfig.IJSFAppConfigLocater#locateProviders(org.eclipse.jst.jsf.core.internal.provisional.jsfappconfig.JSFAppConfigManager)
-	 */
-	public void locateProviders(JSFAppConfigManager manager) {
-		IProject project = manager.getProject();
-		try {
-			String[] JARs = JSFAppConfigUtils.getConfigFileJARsFromClasspath(project);
-			if (JARs != null && JARs.length > 0) {
-				for (int i = 0; i < JARs.length; i++) {
-					JARFileJSFAppConfigProvider provider = new JARFileJSFAppConfigProvider(JARs[i]);
-					manager.addJSFAppConfigProvider(provider);
-				}
-			}
-		} 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 5124c89..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/provisional/jsfappconfig/WebContentRelativeJSFAppConfigLocater.java
+++ /dev/null
@@ -1,61 +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.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. Clients must override the getFilenames() method to return an
- * array of filenames that this locateProviders() method will attempt to
- * locate.
- * 
- * @author Ian Trimble - Oracle
- */
-public abstract class WebContentRelativeJSFAppConfigLocater implements IJSFAppConfigLocater {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jst.jsf.core.internal.provisional.jsfappconfig.IJSFAppConfigLocater#locateProviders(org.eclipse.jst.jsf.core.internal.provisional.jsfappconfig.JSFAppConfigManager)
-	 */
-	public void locateProviders(JSFAppConfigManager manager) {
-		IProject project = manager.getProject();
-		IVirtualFolder webContentFolder = JSFAppConfigUtils.getWebContentFolder(project);
-		if (webContentFolder != null) {
-			String[] filenames = getFilenames();
-			if (filenames != null && filenames.length > 0) {
-				for (int i = 0; i < filenames.length; i++) {
-					IVirtualResource appConfigResource = webContentFolder.findMember(filenames[i]);
-					if (appConfigResource != null && appConfigResource.getType() == IVirtualResource.FILE) {
-						IFile file = (IFile)appConfigResource.getUnderlyingResource();
-						if (file != null && file.exists()) {
-							ArtifactEditJSFAppConfigProvider provider = new ArtifactEditJSFAppConfigProvider(file);
-							manager.addJSFAppConfigProvider(provider);
-						}
-					}
-				}
-			}
-		}
-	}
-
-	/**
-	 * Gets an array of Strings representing the filenames (relative to the web
-	 * content folder) that locateProviders() will attempt to locate.
-	 * 
-	 * @return an array of Strings representing the filenames (relative to the
-	 * web content folder) that locateProviders() will attempt to locate.
-	 */
-	protected abstract String[] 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/META-INF/MANIFEST.MF b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/META-INF/MANIFEST.MF
index 3ae7471..80dabce 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/META-INF/MANIFEST.MF
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/META-INF/MANIFEST.MF
@@ -35,13 +35,15 @@
  org.eclipse.jst.jsf.facesconfig.edit,
  org.eclipse.jem.util,
  org.eclipse.jst.jsf.facesconfig.common,
- org.eclipse.jst.jsf.facesconfig
+ org.eclipse.jst.jsf.facesconfig,
+ org.eclipse.ui.cheatsheets
 Eclipse-LazyStart: true
 Export-Package: org.eclipse.jst.jsf.facesconfig.ui,
  org.eclipse.jst.jsf.facesconfig.ui.dialog,
  org.eclipse.jst.jsf.facesconfig.ui.page,
  org.eclipse.jst.jsf.facesconfig.ui.page.detail,
  org.eclipse.jst.jsf.facesconfig.ui.pageflow.util,
+ org.eclipse.jst.jsf.facesconfig.ui.preference,
  org.eclipse.jst.jsf.facesconfig.ui.provider,
  org.eclipse.jst.jsf.facesconfig.ui.section,
  org.eclipse.jst.jsf.facesconfig.ui.util,
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/build.properties b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/build.properties
index 34d2e4d..340b7dd 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/build.properties
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/build.properties
@@ -1,4 +1,8 @@
 source.. = src/
 output.. = bin/
 bin.includes = META-INF/,\
-               .
+               .,\
+               icons/,\
+               plugin.xml,\
+               plugin.properties,\
+               cheatsheets/
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/FacesConfig_Application.gif b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/FacesConfig_Application.gif
deleted file mode 100644
index 57e5b1e..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/FacesConfig_Application.gif
+++ /dev/null
Binary files differ
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/FacesConfig_Component.gif b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/FacesConfig_Component.gif
deleted file mode 100644
index 347a8ff..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/FacesConfig_Component.gif
+++ /dev/null
Binary files differ
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/FacesConfig_Converter.gif b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/FacesConfig_Converter.gif
deleted file mode 100644
index 16466ed..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/FacesConfig_Converter.gif
+++ /dev/null
Binary files differ
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/FacesConfig_Factory.gif b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/FacesConfig_Factory.gif
deleted file mode 100644
index 955d5e8..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/FacesConfig_Factory.gif
+++ /dev/null
Binary files differ
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/FacesConfig_LifeCycle.gif b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/FacesConfig_LifeCycle.gif
deleted file mode 100644
index 3a7608b..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/FacesConfig_LifeCycle.gif
+++ /dev/null
Binary files differ
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/ManagedBeanType.gif b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/FacesConfig_ManagedBean.gif
similarity index 100%
rename from jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/ManagedBeanType.gif
rename to jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/FacesConfig_ManagedBean.gif
Binary files differ
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/FacesConfig_RenderKit.gif b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/FacesConfig_RenderKit.gif
deleted file mode 100644
index 30ba00d..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/FacesConfig_RenderKit.gif
+++ /dev/null
Binary files differ
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/FacesConfig_Validator.gif b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/FacesConfig_Validator.gif
deleted file mode 100644
index 86196e9..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/FacesConfig_Validator.gif
+++ /dev/null
Binary files differ
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/Pageflow_Action.gif b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/Pageflow_Action.gif
deleted file mode 100644
index 1f54cdb..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/Pageflow_Action.gif
+++ /dev/null
Binary files differ
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/Pageflow_Action24.gif b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/Pageflow_Action24.gif
deleted file mode 100644
index 9a13098..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/Pageflow_Action24.gif
+++ /dev/null
Binary files differ
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/Pageflow_Begin.gif b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/Pageflow_Begin.gif
deleted file mode 100644
index 8beabfe..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/Pageflow_Begin.gif
+++ /dev/null
Binary files differ
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/Pageflow_Begin16.gif b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/Pageflow_Begin16.gif
deleted file mode 100644
index 0a4554d..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/Pageflow_Begin16.gif
+++ /dev/null
Binary files differ
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/Pageflow_Begin24.gif b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/Pageflow_Begin24.gif
deleted file mode 100644
index 8e76c4b..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/Pageflow_Begin24.gif
+++ /dev/null
Binary files differ
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/Pageflow_End.gif b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/Pageflow_End.gif
deleted file mode 100644
index c099f2d..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/Pageflow_End.gif
+++ /dev/null
Binary files differ
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/Pageflow_End16.gif b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/Pageflow_End16.gif
deleted file mode 100644
index cb8b1ae..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/Pageflow_End16.gif
+++ /dev/null
Binary files differ
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/Pageflow_End24.gif b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/Pageflow_End24.gif
deleted file mode 100644
index 63d0854..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/Pageflow_End24.gif
+++ /dev/null
Binary files differ
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/operation.gif b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/operation.gif
deleted file mode 100644
index 3a7608b..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/facesconfig/operation.gif
+++ /dev/null
Binary files differ
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/form_banner.gif b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/form_banner.gif
new file mode 100644
index 0000000..aebc0b2
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/form_banner.gif
Binary files differ
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/help.gif b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/help.gif
new file mode 100644
index 0000000..9d70301
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/help.gif
Binary files differ
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/newsuade_wiz.gif b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/newsuade_wiz.gif
deleted file mode 100644
index ecd75f4..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/newsuade_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/wizards/Type.gif b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/wizards/Type.gif
deleted file mode 100644
index ecf38ae..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/wizards/Type.gif
+++ /dev/null
Binary files differ
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/wizards/newsuade_wiz.gif b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/wizards/newsuade_wiz.gif
deleted file mode 100644
index ecd75f4..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/wizards/newsuade_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/plugin.xml b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/plugin.xml
index 06e2167..44cefe8 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/plugin.xml
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/plugin.xml
@@ -1,6 +1,14 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?eclipse version="3.0"?>
 <plugin>
+  <extension
+        point="org.eclipse.ui.preferencePages">
+     <page
+           category="org.eclipse.wst.sse.ui.internal.provisional.preferences"
+           class="org.eclipse.jst.jsf.facesconfig.ui.preference.GEMPreferences"
+           id="org.eclipse.jst.jsf.facesconfig.ui.preference.GEMPreferences"
+           name="JSF FacesConfig UI"/>
+  </extension>
 <extension point="org.eclipse.ui.editors">
 		
 		<editor
@@ -32,7 +40,7 @@
 				text="%pageflow.editor.intro.start.text"
 				hyperlink="%pageflow.editor.intro.start.link"/>
 			<introductionelement
-				actionparameters="PageflowEditor.createCheatSheet"
+				actionparameters="FacesConfigEditor.CheatSheet"
 				icon="icons/FacesConfig_Tutorial.gif"
 				hyperlinkaction="org.eclipse.jst.jsf.facesconfig.common.actions.LoadCheatSheetAction"
 				text="%pageflow.editor.intro.cheatsheets.text"
@@ -64,4 +72,12 @@
 			<propertyCategory category="general"/>
 		</propertyContributor>
 	</extension>
+  <extension
+        point="org.eclipse.ui.cheatsheets.cheatSheetContent">
+     <cheatsheet
+           composite="false"
+           contentFile="cheatsheets/facesconfigeditor.xml"
+           id="FacesConfigEditor.CheatSheet"
+           name="FacesConfigEditor CheatSheet"/>
+  </extension>
 </plugin>
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/EditorMessages.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/EditorMessages.java
deleted file mode 100644
index 859c91b..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/EditorMessages.java
+++ /dev/null
@@ -1,328 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 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;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * 
- * @author sfshi
- * 
- */
-public final class EditorMessages extends NLS {
-
-	private static final String BUNDLE_NAME = "org.eclipse.jst.jsf.facesconfig.ui.EditorMessages";//$NON-NLS-1$
-
-	private EditorMessages() {
-		// Do not instantiate
-	}
-
-	static {
-		NLS.initializeMessages(BUNDLE_NAME, EditorMessages.class);
-	}
-
-	public static String UI_Button_Add;
-
-	public static String UI_Button_Edit;
-
-	public static String UI_Button_Remove;
-
-	public static String UI_Button_Add_more;
-
-	public static String UI_Button_Edit_more;
-
-	public static String FacesConfigEditor_Introduction_TabName;
-
-	public static String FacesConfigEditor_Overview_TabName;
-
-	public static String FacesConfigEditor_Pageflow_TabName;
-
-	public static String FacesConfigEditor_ManagedBeans_TabName;
-
-	public static String FacesConfigEditor_Components_TabName;
-
-	public static String FacesConfigEditor_Others_TabName;
-
-	public static String FacesConfigEditor_Source_TabName;
-
-	public static String editor_pageflow_page_intro_name;
-
-	public static String editor_pageflow_page_intro_title;
-
-	public static String editor_pageflow_page_intro_help_HelpContextID;
-
-	public static String editor_pageflow_page_intro_help_HelpToolTip;
-
-	public static String ComponentsPage_Title;
-
-	// Component Master Section
-	public static String ComponentMasterSection_Name;
-
-	public static String ComponentMasterSection_Description;
-
-	public static String ComponentMasterSection_HelpContextID;
-
-	public static String ComponentMasterSection_HelpToolTip;
-
-	// Component General Section
-	public static String ComponentGeneralSection_Name;
-
-	public static String ComponentGeneralSection_Desc;
-
-	public static String ComponentGeneralSection_HelpContextID;
-
-	public static String ComponentGeneralSection_HelpToolTip;
-
-	public static String ComponentGeneralSection_DisplayName;
-
-	public static String ComponentGeneralSection_Description;
-
-	public static String ComponentGeneralSection_ComponentType;
-
-	public static String ComponentGeneralSection_ComponentClass;
-
-	// ##Attribute Section
-	public static String AttributeSection_Name;
-
-	public static String AttributeSection_Description;
-
-	public static String AttributeSection_HelpContextID;
-
-	public static String AttributeSection_HelpToolTip;
-
-	public static String AttributeSection_Table_NameColumn;
-
-	public static String AttributeSection_Table_ClassColumn;
-
-	public static String AttributeSection_Table_DefaultValueColumn;
-
-	public static String AttributeSection_Table_SuggestedValueColumn;
-
-	public static String AttributeSection_Dialog_Title_Add;
-
-	public static String AttributeSection_Dialog_Title_Edit;
-
-	public static String AttributeSection_Dialog_Tab_General;
-
-	public static String AttributeSection_Dialog_AttributeName;
-
-	public static String AttributeSection_Dialog_AttributeClass;
-
-	public static String AttributeSection_Dialog_DefaultValue;
-
-	public static String AttributeSection_Dialog_SuggestedValue;
-
-	public static String AttributeSection_Dialog_Error_NameEmpty;
-
-	public static String AttributeSection_Dialog_Error_ClassEmpty;
-
-	// ##Property Section
-	public static String PropertySection_Name;
-
-	public static String PropertySection_Description;
-
-	public static String PropertySection_HelpContextID;
-
-	public static String PropertySection_HelpToolTip;
-
-	public static String PropertySection_Table_NameColumn;
-
-	public static String PropertySection_Table_ClassColumn;
-
-	public static String PropertySection_Table_DefaultValueColumn;
-
-	public static String PropertySection_Table_SuggestedValueColumn;
-
-	public static String PropertySection_Dialog_Title_Add;
-
-	public static String PropertySection_Dialog_Title_Edit;
-
-	public static String PropertySection_Dialog_Tab_General;
-
-	public static String PropertySection_Dialog_PropertyName;
-
-	public static String PropertySection_Dialog_PropertyClass;
-
-	public static String PropertySection_Dialog_DefaultValue;
-
-	public static String PropertySection_Dialog_SuggestedValue;
-
-	public static String PropertySection_Dialog_Error_NameEmpty;
-
-	public static String PropertySection_Dialog_Error_ClassEmpty;
-
-	// ##Facet Section
-	public static String FacetSection_Name;
-
-	public static String FacetSection_Description;
-
-	public static String FacetSection_HelpContextID;
-
-	public static String FacetSection_HelpToolTip;
-
-	public static String FacetSection_Table_FacetNameColumn;
-
-	public static String FacetSection_Table_DisplayNameColumn;
-
-	public static String FacetSection_Table_DescriptionColumn;
-
-	public static String FacetSection_Dialog_Title_Add;
-
-	public static String FacetSection_Dialog_Title_Edit;
-
-	public static String FacetSection_Dialog_Tab_General;
-
-	public static String FacetSection_Dialog_FacetName;
-
-	public static String FacetSection_Dialog_DisplayName;
-
-	public static String FacetSection_Dialog_Description;
-
-	public static String FacetSection_Dialog_Error_NameEmpty;
-
-	// ##managed bean master section
-	public static String ManagedBeanMasterSection_Name;
-
-	public static String ManagedBeanMasterSection_Description;
-
-	public static String ManagedBeanMasterSection_HelpContextID;
-
-	public static String ManagedBeanMasterSection_HelpToolTip;
-	
-	public static String ConvertersPage_Title;
-
-	// Converter Master Section
-	public static String ConverterMasterSection_Name;
-
-	public static String ConverterMasterSection_Description;
-
-	public static String ConverterMasterSection_HelpContextID;
-
-	public static String ConverterMasterSection_HelpToolTip;
-
-	// Converter General Section
-	public static String ConverterGeneralSection_Name;
-
-	public static String ConverterGeneralSection_Desc;
-
-	public static String ConverterGeneralSection_HelpContextID;
-
-	public static String ConverterGeneralSection_HelpToolTip;
-
-	public static String ConverterGeneralSection_DisplayName;
-
-	public static String ConverterGeneralSection_Description;
-
-	public static String ConverterGeneralSection_ConverterID;
-
-	public static String ConverterGeneralSection_ConverterForClass;
-
-	public static String ConverterGeneralSection_ConverterClass;
-
-	// Validator Master Section
-	public static String ValidatorMasterSection_Name;
-
-	public static String ValidatorMasterSection_Description;
-
-	public static String ValidatorMasterSection_HelpContextID;
-
-	public static String ValidatorMasterSection_HelpToolTip;
-
-	// Validator General Section
-	public static String ValidatorGeneralSection_Name;
-
-	public static String ValidatorGeneralSection_Desc;
-
-	public static String ValidatorGeneralSection_HelpContextID;
-
-	public static String ValidatorGeneralSection_HelpToolTip;
-
-	public static String ValidatorGeneralSection_DisplayName;
-
-	public static String ValidatorGeneralSection_Description;
-
-	public static String ValidatorGeneralSection_ValidatorID;
-
-	public static String ValidatorGeneralSection_ValidatorForClass;
-
-	public static String ValidatorGeneralSection_ValidatorClass;
-
-
-	// Renderkit Master Section
-	public static String RenderkitMasterSection_Name;
-
-	public static String RenderkitMasterSection_Description;
-
-	public static String RenderkitMasterSection_HelpContextID;
-
-	public static String RenderkitMasterSection_HelpToolTip;
-
-	// Renderkit General Section
-	public static String RenderkitGeneralSection_Name;
-
-	public static String RenderkitGeneralSection_Desc;
-
-	public static String RenderkitGeneralSection_HelpContextID;
-
-	public static String RenderkitGeneralSection_HelpToolTip;
-
-	public static String RenderkitGeneralSection_DisplayName;
-
-	public static String RenderkitGeneralSection_Description;
-
-	public static String RenderkitGeneralSection_RenderkitID;
-
-	public static String RenderkitGeneralSection_RenderkitForClass;
-
-	public static String RenderkitGeneralSection_RenderkitClass;
-
-	// ##Renderer Section
-	public static String RendererSection_Name;
-
-	public static String RendererSection_Description;
-
-	public static String RendererSection_HelpContextID;
-
-	public static String RendererSection_HelpToolTip;
-
-	public static String RendererSection_Table_NameColumn;
-
-	public static String RendererSection_Table_ClassColumn;
-
-	public static String RendererSection_Table_ComponentFamilyColumn;
-
-	public static String RendererSection_Table_TypeColumn;
-
-	public static String RendererSection_Dialog_Title_Add;
-
-	public static String RendererSection_Dialog_Title_Edit;
-
-	public static String RendererSection_Dialog_Tab_General;
-
-	public static String RendererSection_Dialog_RendererName;
-
-	public static String RendererSection_Dialog_RendererClass;
-
-	public static String RendererSection_Dialog_ComponentFamilyValue;
-
-	public static String RendererSection_Dialog_ComponentFamilyCaption;
-	
-	public static String RendererSection_Dialog_ComponentFamilyLabel;
-	
-
-	public static String RendererSection_Dialog_TypeValue;
-
-	public static String RendererSection_Dialog_Error_NameEmpty;
-
-	public static String RendererSection_Dialog_Error_ClassEmpty;
-
-}
\ No newline at end of file
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/EditorMessages.properties b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/EditorMessages.properties
deleted file mode 100644
index 5389bbb..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/EditorMessages.properties
+++ /dev/null
@@ -1,221 +0,0 @@
-##################################################################################
-##/*******************************************************************************
-##* 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
-##*******************************************************************************/
-##################################################################################
-
-####################################################
-# Common UI resources
-####################################################
-UI_Button_Add = Add
-UI_Button_Edit = Edit
-UI_Button_Remove = Remove
-UI_Button_Add_more = Add...
-UI_Button_Edit_more = Edit...
-
-
-####################################################
-# Tab's name for multipageeditor of faces-config 
-####################################################
-FacesConfigEditor_Introduction_TabName			= Introduction
-FacesConfigEditor_Overview_TabName				= Overview
-FacesConfigEditor_Pageflow_TabName				= Navigation
-FacesConfigEditor_ManagedBeans_TabName			= ManagedBean
-FacesConfigEditor_Components_TabName			= Component
-FacesConfigEditor_Others_TabName				= Other
-FacesConfigEditor_Source_TabName				= Source
-
-
-####################################################
-#Introduction page 
-####################################################
-editor_pageflow_page_intro_name = Introduction
-editor_pageflow_page_intro_title = Faces Configuration Introduction
-editor_pageflow_page_intro_help_HelpContextID = com.sybase.stf.jmt.faces_config_editor_introduction
-editor_pageflow_page_intro_help_HelpToolTip = Introduction
-
-####################################################
-#Components page 
-####################################################
-ComponentsPage_Title    = Components
-
-##Component Master Section
-ComponentMasterSection_Name = Component
-ComponentMasterSection_Description = The following components are defined:
-ComponentMasterSection_HelpContextID = com.sybase.stf.jmt.faces_config_editor_components_component
-ComponentMasterSection_HelpToolTip = Component
-
-##Component General Section
-ComponentGeneralSection_Name = General
-ComponentGeneralSection_Desc =  This section describes the general information of this component.
-ComponentGeneralSection_HelpContextID = com.sybase.stf.jmt.faces_config_editor_components_component_general
-ComponentGeneralSection_HelpToolTip = ComponentGeneral
-ComponentGeneralSection_DisplayName = Display Name:
-ComponentGeneralSection_Description = Description:
-ComponentGeneralSection_ComponentType = Component Type*:
-ComponentGeneralSection_ComponentClass = Component Class:
-
-##Attribute Section
-AttributeSection_Name = Attributes
-AttributeSection_Description = This section lists all the attributes.
-AttributeSection_HelpContextID = com.sybase.stf.jmt.faces_config_editor_components_attribute
-AttributeSection_HelpToolTip = Attribute
-
-AttributeSection_Table_NameColumn = Name
-AttributeSection_Table_ClassColumn = Class
-AttributeSection_Table_DefaultValueColumn = Default Value
-AttributeSection_Table_SuggestedValueColumn = Suggested Value
-
-AttributeSection_Dialog_Title_Add = Add Attribute
-AttributeSection_Dialog_Title_Edit = Edit Attribute
-AttributeSection_Dialog_Tab_General = General
-AttributeSection_Dialog_AttributeName = Attribute Name:
-AttributeSection_Dialog_AttributeClass = Attribute Class:
-AttributeSection_Dialog_DefaultValue = Default value:
-AttributeSection_Dialog_SuggestedValue = Suggested value:
-AttributeSection_Dialog_Error_NameEmpty = The attribute name is empty.
-AttributeSection_Dialog_Error_ClassEmpty = The attribute class is empty.
-
-##Property Section
-PropertySection_Name = Properties
-PropertySection_Description = This section lists all the properties.
-PropertySection_HelpContextID = com.sybase.stf.jmt.faces_config_editor_components_property
-PropertySection_HelpToolTip = Property
-
-PropertySection_Table_NameColumn = Name
-PropertySection_Table_ClassColumn = Class
-PropertySection_Table_DefaultValueColumn = Default Value
-PropertySection_Table_SuggestedValueColumn = Suggested Value
-
-PropertySection_Dialog_Title_Add = Add Property
-PropertySection_Dialog_Title_Edit = Edit Property
-PropertySection_Dialog_Tab_General = General
-PropertySection_Dialog_PropertyName = Property Name:
-PropertySection_Dialog_PropertyClass = Property Class:
-PropertySection_Dialog_DefaultValue = Default value:
-PropertySection_Dialog_SuggestedValue = Suggested value:
-PropertySection_Dialog_Error_NameEmpty = The property name is empty.
-PropertySection_Dialog_Error_ClassEmpty = The property class is empty.
-
-##Facet Section
-FacetSection_Name = Facets
-FacetSection_Description = This section lists all the facets.
-FacetSection_HelpContextID = com.sybase.stf.jmt.faces_config_editor_components_facet
-FacetSection_HelpToolTip = Facet
-
-FacetSection_Table_FacetNameColumn = Facet Name
-FacetSection_Table_DisplayNameColumn = Display Name
-FacetSection_Table_DescriptionColumn = Description
-
-FacetSection_Dialog_Title_Add = Add Facet
-FacetSection_Dialog_Title_Edit = Edit Facet
-FacetSection_Dialog_Tab_General = General
-FacetSection_Dialog_FacetName = Facet Name:
-FacetSection_Dialog_DisplayName = Display Name:
-FacetSection_Dialog_Description = Description:
-FacetSection_Dialog_Error_NameEmpty = The facet name is empty.
-
-
-
-##managed bean master section
-ManagedBeanMasterSection_Name = Managed Beans
-ManagedBeanMasterSection_Description = The following managed beans are defined
-ManagedBeanMasterSection_HelpContextID = com.sybase.stf.jmt.faces_config_editor_managedbeans
-ManagedBeanMasterSection_HelpToolTip = ManagedBean
-
-####################################################
-#Converters page 
-####################################################
-ConvertersPage_Title    = Converters
-
-##Converter Master Section
-ConverterMasterSection_Name = Converter
-ConverterMasterSection_Description = The following Converters are defined:
-ConverterMasterSection_HelpContextID = com.sybase.stf.jmt.faces_config_editor_converters_converter
-ConverterMasterSection_HelpToolTip = Converter
-
-##Converter General Section
-ConverterGeneralSection_Name = General
-ConverterGeneralSection_Desc =  This section describes the general information of this converter.
-ConverterGeneralSection_HelpContextID = com.sybase.stf.jmt.faces_config_editor_converters_converter_general
-ConverterGeneralSection_HelpToolTip = ConverterGeneral
-ConverterGeneralSection_DisplayName = Display Name:
-ConverterGeneralSection_Description = Description:
-ConverterGeneralSection_ConverterID = Converter ID:
-ConverterGeneralSection_ConverterForClass = or Converter For Class:
-ConverterGeneralSection_ConverterClass = Converter Class:
-
-####################################################
-#Validators page 
-####################################################
-ValidatorsPage_Title    = Validators
-
-##Validator Master Section
-ValidatorMasterSection_Name = Validator
-ValidatorMasterSection_Description = The following validators are defined:
-ValidatorMasterSection_HelpContextID = com.sybase.stf.jmt.faces_config_editor_validators_validator
-ValidatorMasterSection_HelpToolTip = Validator
-
-##Validator General Section
-ValidatorGeneralSection_Name = General
-ValidatorGeneralSection_Desc =  This section describes the general information of this validator.
-ValidatorGeneralSection_HelpContextID = com.sybase.stf.jmt.faces_config_editor_validators_validator_general
-ValidatorGeneralSection_HelpToolTip = ValidatorGeneral
-ValidatorGeneralSection_DisplayName = Display Name:
-ValidatorGeneralSection_Description = Description:
-ValidatorGeneralSection_ValidatorID = Validator ID:
-ValidatorGeneralSection_ValidatorClass = Validator Class:
-
-####################################################
-#Renderkits page 
-####################################################
-RenderkitsPage_Title    = Render Kits
-
-##Renderkit Master Section
-RenderkitMasterSection_Name = Render Kits
-RenderkitMasterSection_Description = The following render-kits are defined:
-RenderkitMasterSection_HelpContextID = com.sybase.stf.jmt.faces_config_editor_renderkits_renderkit
-RenderkitMasterSection_HelpToolTip = RenderKit
-
-##Renderkit General Section
-RenderkitGeneralSection_Name = General
-RenderkitGeneralSection_Desc =  This section describes the general information of this render-kit.
-RenderkitGeneralSection_HelpContextID = com.sybase.stf.jmt.faces_config_editor_renderkits_renderkit_general
-RenderkitGeneralSection_HelpToolTip = RenderKitGeneral
-RenderkitGeneralSection_DisplayName = Display Name:
-RenderkitGeneralSection_Description = Description:
-RenderkitGeneralSection_RenderkitID = Renderkit ID:
-RenderkitGeneralSection_RenderkitClass = Renderkit Class:
-
-##Renderer Section
-RendererSection_Name = Renderers
-RendererSection_Description = This section lists all the renderers.
-RendererSection_HelpContextID = com.sybase.stf.jmt.faces_config_editor_components_renderer
-RendererSection_HelpToolTip = Renderer
-
-RendererSection_Table_NameColumn = Name
-RendererSection_Table_ClassColumn = Class
-RendererSection_Table_ComponentFamilyColumn = Component Family
-RendererSection_Table_TypeColumn = Type
-
-RendererSection_Dialog_Title_Add = Add Renderer
-RendererSection_Dialog_Title_Edit = Edit Renderer
-RendererSection_Dialog_Tab_General = General
-RendererSection_Dialog_RendererName = Display Name:
-RendererSection_Dialog_RendererClass =Class:
-RendererSection_Dialog_ComponentFamilyValue =Component Family:
-RendererSection_Dialog_ComponentFamilyCaption =Select Component Family
-RendererSection_Dialog_ComponentFamilyLabel =Enter or select a component family:
-
-RendererSection_Dialog_ComponentFamilyValue =Component Family:
-RendererSection_Dialog_TypeValue = Type:
-RendererSection_Dialog_Error_NameEmpty = The Renderer name is empty.
-RendererSection_Dialog_Error_ClassEmpty = The Renderer class is empty.
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/EditorPlugin.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/EditorPlugin.java
index ff29636..064096e 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/EditorPlugin.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/EditorPlugin.java
@@ -24,6 +24,7 @@
 import org.eclipse.jface.resource.ImageRegistry;
 import org.eclipse.jst.jsf.facesconfig.common.guiutils.Alerts;
 import org.eclipse.jst.jsf.facesconfig.common.logging.Logger;
+import org.eclipse.jst.jsf.facesconfig.ui.preference.GEMPreferences;
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Shell;
@@ -35,7 +36,7 @@
 /**
  * The main plugin class to be used in the desktop.
  */
-public class EditorPlugin extends AbstractUIPlugin {
+public class EditorPlugin extends AbstractUIPlugin {//implements IStartup {
 
 	// The shared instance.
 	private static EditorPlugin plugin;
@@ -48,14 +49,14 @@
 
 	private URL pluginBase;
 
-	private static IPreferenceStore preferenceStore;
-
 	/**
 	 * The constructor.
 	 */
 	public EditorPlugin() {
+		super();
 		plugin = this;
 	}
+	
 
 	/**
 	 * This method is called upon plug-in activation
@@ -72,7 +73,7 @@
 			// set up logging for this plugin and everthing under it.
 			log = new Logger(this.getBundle(), resourceBundle);
 
-//			log.info("log.StartMessage", CommonPlugin.getVersion());
+			// log.info("log.StartMessage", CommonPlugin.getVersion());
 		} catch (Exception ee) {
 			// only log if the logger was configured correctly.
 			if (log != null) {
@@ -84,6 +85,7 @@
 					.getSymbolicName(), IStatus.OK,
 					"Problems starting plug-in Faces Config Editor", ee));
 		}
+		
 	}
 
 	/**
@@ -271,11 +273,7 @@
 		return getDefault().getBundle().getSymbolicName();
 	}
 
-	public IPreferenceStore getPreferenceStore() {
-		if (null == preferenceStore) {
-			preferenceStore = new EditorPreferenceStore();
-		}
-
-		return preferenceStore;
+	protected void initializeDefaultPluginPreferences() {
+		new GEMPreferences();
 	}
 }
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/EditorPluginResources.properties b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/EditorPluginResources.properties
index 8ad39d2..27f8246 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/EditorPluginResources.properties
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/EditorPluginResources.properties
@@ -847,3 +847,40 @@
 ManagedBeanPropertyWizardPage.Alert.RemoveProperty.Information = Remove this property, are you sure?
 ServiceSelectionWizardPage.handleNewServiceCreation.error = Create New Service Exception {0}
 DataStoreSelectionWizardPage.PBLFileNotFound = Power Builder Library file \''{0}\'' can not found.
+
+
+#
+# Appearance preference labels
+#
+CanvasPreferenceTab.LABEL.UseSystemColors=Use System colors
+CanvasPreferenceTab.LABEL.BackgroundColor=Background color:
+CanvasPreferenceTab.LABEL.Canvas=Canvas
+CanvasPreferenceTab.LABEL.GridHeight=Grid height:
+CanvasPreferenceTab.LABEL.GridLineColor=Grid color:
+CanvasPreferenceTab.LABEL.GridWidth=Grid width:
+CanvasPreferenceTab.LABEL.IconLabelFont=Label font:
+CanvasPreferenceTab.LABEL.IconGroup=Icons
+CanvasPreferenceTab.LABEL.InputPortColor=Input Port color:
+CanvasPreferenceTab.LABEL.OutputPortColor=Output Port color:
+CanvasPreferenceTab.LABEL.LineGroup=Connection Lines
+CanvasPreferenceTab.LABEL.LineColor=Line color:
+CanvasPreferenceTab.LABEL.ShowLineLabels=Show labels
+CanvasPreferenceTab.LABEL.LineLabelColor=Label color:
+CanvasPreferenceTab.LABEL.LineLabelFont=Label font:
+CanvasPreferenceTab.LABEL.LineRouting=Line Routing:
+CanvasPreferenceTab.LABEL.LineWidth=Line width:
+CanvasPreferenceTab.LABEL.SnapToGeometry=Snap to geometry
+CanvasPreferenceTab.LABEL.SnapToGrid=Snap to grid
+CanvasPreferenceTab.LABEL.UndoStackSize="Undo\" stack size:
+CanvasPreferences.LABEL.Direct=Direct
+CanvasPreferences.LABEL.Manhattan=Manhattan
+CanvasPreferences.LABEL.Manual=Manual
+CanvasPreferenceTab.LABEL.LabelPlacement=Label Placement:
+CanvasPreferences.LABEL.Top=Top
+CanvasPreferences.LABEL.Bottom=Bottom
+CanvasPreferences.LABEL.Left=Left
+CanvasPreferences.LABEL.Right=Right
+CanvasPreferenceTab.LABEL.IconSize=Icon Size:
+CanvasPreferences.LABEL.Small=Small
+CanvasPreferences.LABEL.Medium=Medium
+CanvasPreferences.LABEL.Large=Large
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/EditorPreferenceStore.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/EditorPreferenceStore.java
deleted file mode 100644
index d179970..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/EditorPreferenceStore.java
+++ /dev/null
@@ -1,212 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 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;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.util.IPropertyChangeListener;
-
-/**
- * The holder of faces config graphical editor configuration.
- * 
- * @author sfshi
- * 
- */
-public class EditorPreferenceStore implements IPreferenceStore {
-
-	public void addPropertyChangeListener(IPropertyChangeListener listener) {
-
-	}
-
-	public boolean contains(String name) {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	public void firePropertyChangeEvent(String name, Object oldValue,
-			Object newValue) {
-		// TODO Auto-generated method stub
-
-	}
-
-	public boolean getBoolean(String name) {
-		if (EditorPreferences.SNAP_TO_GEOMETRY.equals(name)) {
-			return true;
-		} else if (EditorPreferences.SNAP_TO_GRID.equals(name)) {
-			return true;
-		} else if (EditorPreferences.USE_SYSTEM_COLORS.equals(name)) {
-			return true;
-		} else if (EditorPreferences.SHOW_LINE_LABELS.equals(name)) {
-			return true;
-		}
-
-		return false;
-	}
-
-	public boolean getDefaultBoolean(String name) {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	public double getDefaultDouble(String name) {
-		// TODO Auto-generated method stub
-		return 0;
-	}
-
-	public float getDefaultFloat(String name) {
-		// TODO Auto-generated method stub
-		return 0;
-	}
-
-	public int getDefaultInt(String name) {
-		// TODO Auto-generated method stub
-		return 0;
-	}
-
-	public long getDefaultLong(String name) {
-		// TODO Auto-generated method stub
-		return 0;
-	}
-
-	public String getDefaultString(String name) {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	public double getDouble(String name) {
-		// TODO Auto-generated method stub
-		return 0;
-	}
-
-	public float getFloat(String name) {
-		// TODO Auto-generated method stub
-		return 0;
-	}
-
-	public int getInt(String name) {
-		if (EditorPreferences.LINE_WIDTH.equals(name)) {
-			return 1;
-		} else if (EditorPreferences.GRID_WIDTH.equals(name)) {
-			return 12;
-		} else if (EditorPreferences.GRID_HEIGHT.equals(name)) {
-			return 12;
-		}
-		return 0;
-	}
-
-	public long getLong(String name) {
-		// TODO Auto-generated method stub
-		return 0;
-	}
-
-	public String getString(String name) {
-		if (EditorPreferences.LINE_ROUTING.equals(name)) {
-			// defaultly use manual, another value
-			// is GEMPreferences.LINE_ROUTING_MANHATTAN
-			return EditorPreferences.LINE_ROUTING_MANUAL;
-		} else if (EditorPreferences.LABEL_PLACEMENT.equals(name)) {
-			return EditorPreferences.LABEL_PLACEMENT_BOTTOM;
-		} else if (EditorPreferences.LINE_LABEL_FONT.equals(name)) {
-			return "1|Tahoma|8|0|WINDOWS|1|-11|0|0|0|400|0|0|0|1|0|0|0|0|Tahoma;";
-		} else if (EditorPreferences.FIGURE_LABEL_FONT.equals(name)) {
-
-			return "1|Tahoma|8|0|WINDOWS|1|-11|0|0|0|400|0|0|0|1|0|0|0|0|Tahoma;";
-		}
-
-		return null;
-	}
-
-	public boolean isDefault(String name) {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	public boolean needsSaving() {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	public void putValue(String name, String value) {
-		// TODO Auto-generated method stub
-
-	}
-
-	public void removePropertyChangeListener(IPropertyChangeListener listener) {
-		// TODO Auto-generated method stub
-
-	}
-
-	public void setDefault(String name, double value) {
-		// TODO Auto-generated method stub
-
-	}
-
-	public void setDefault(String name, float value) {
-		// TODO Auto-generated method stub
-
-	}
-
-	public void setDefault(String name, int value) {
-		// TODO Auto-generated method stub
-
-	}
-
-	public void setDefault(String name, long value) {
-		// TODO Auto-generated method stub
-
-	}
-
-	public void setDefault(String name, String defaultObject) {
-		// TODO Auto-generated method stub
-
-	}
-
-	public void setDefault(String name, boolean value) {
-		// TODO Auto-generated method stub
-
-	}
-
-	public void setToDefault(String name) {
-		// TODO Auto-generated method stub
-
-	}
-
-	public void setValue(String name, double value) {
-		// TODO Auto-generated method stub
-
-	}
-
-	public void setValue(String name, float value) {
-		// TODO Auto-generated method stub
-
-	}
-
-	public void setValue(String name, int value) {
-		// TODO Auto-generated method stub
-
-	}
-
-	public void setValue(String name, long value) {
-		// TODO Auto-generated method stub
-
-	}
-
-	public void setValue(String name, String value) {
-		// TODO Auto-generated method stub
-
-	}
-
-	public void setValue(String name, boolean value) {
-		// TODO Auto-generated method stub
-
-	}
-
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/EditorPreferences.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/EditorPreferences.java
deleted file mode 100644
index 4662a75..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/EditorPreferences.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 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;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.swt.graphics.Color;
-
-public class EditorPreferences {
-	// appearance
-	public final static String USE_SYSTEM_COLORS = "UseSystemColors"; //$NON-NLS-1$
-
-	public final static String CANVAS_COLOR = "CanvasColor"; //$NON-NLS-1$
-
-	public final static String FIGURE_LABEL_FONT = "FigureLabelFont"; //$NON-NLS-1$
-
-	public final static String FIGURE_LABEL_FONT_COLOR = "FigureLabelFontColor"; //$NON-NLS-1$
-
-	public final static String LABEL_PLACEMENT = "LabelPlacement";
-
-	public final static String INPUT_PORT_COLOR = "InputPortColor";
-
-	public final static String OUTPUT_PORT_COLOR = "OutputPortColor";
-
-	public final static String SHOW_LINE_LABELS = "ShowLineLabels";
-
-	public final static String LINE_LABEL_FONT = "LineLabelFont"; //$NON-NLS-1$
-
-	public final static String LINE_LABEL_FONT_COLOR = "LineLabelFontColor"; //$NON-NLS-1$
-
-	public final static String LINE_LABEL_COLOR = "LineLabelColor"; //$NON-NLS-1$
-
-	public final static String LINE_WIDTH = "LineWidth"; //$NON-NLS-1$
-
-	public final static String LINE_COLOR = "LineColor"; //$NON-NLS-1$
-
-	public final static String LINE_ROUTING = "LineRouting"; //$NON-NLS-1$
-
-	public final static String SNAP_TO_GRID = "SnapToGrid"; //$NON-NLS-1$
-
-	public final static String SNAP_TO_GEOMETRY = "SnapToGeometry"; //$NON-NLS-1$
-
-	public final static String GRID_WIDTH = "GridWidth"; //$NON-NLS-1$
-
-	public final static String GRID_HEIGHT = "GridHeight"; //$NON-NLS-1$
-
-	public final static String GRID_COLOR = "GridColor"; //$NON-NLS-1$
-
-	public final static String LABEL_PLACEMENT_TOP = "Top";
-
-	public final static String LABEL_PLACEMENT_BOTTOM = "Bottom";
-
-	public final static String LABEL_PLACEMENT_LEFT = "Left";
-
-	public final static String LABEL_PLACEMENT_RIGHT = "Right";
-
-	// "Direct" routing was intended for connections lines without bendpoints;
-	// this has been removed because it is unnecessary.
-	// public final static String LINE_ROUTING_DIRECT = "Direct";
-	// "Manhattan" line routing creates orthogonal lines
-	public final static String LINE_ROUTING_MANHATTAN = "Manhattan";
-
-	// "Manual" routing allows user to create bendpoints
-	public final static String LINE_ROUTING_MANUAL = "Manaul";
-
-	public static Color getColor(IPreferenceStore store, String property) {
-		boolean useSystemColors = store.getBoolean(USE_SYSTEM_COLORS);
-
-		Color c = ColorConstants.black;
-		if (useSystemColors) {
-			if (GRID_COLOR.equals(property))
-				c = ColorConstants.button;
-			;
-			if (LINE_COLOR.equals(property))
-				c = ColorConstants.listForeground;
-			if (LINE_LABEL_FONT_COLOR.equals(property))
-				c = ColorConstants.listForeground;
-			if (LINE_LABEL_COLOR.equals(property))
-				c = ColorConstants.listBackground;
-			if (CANVAS_COLOR.equals(property))
-				c = ColorConstants.listBackground;
-			if (INPUT_PORT_COLOR.equals(property))
-				c = ColorConstants.listForeground;
-			if (OUTPUT_PORT_COLOR.equals(property))
-				c = ColorConstants.listForeground;
-			if (FIGURE_LABEL_FONT_COLOR.equals(property))
-				c = ColorConstants.listForeground;
-		}
-
-		return c;
-	}
-}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/EditorResources.properties b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/EditorResources.properties
index 2594379..6d529b8 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/EditorResources.properties
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/EditorResources.properties
@@ -311,8 +311,9 @@
 # managed bean section
 OverviewPage.ManagedBeanSection.name = ManagedBean Information
 OverviewPage.ManagedBeanSection.description = This section describes the managed beans
-OverviewPage.ManagedBeanSection.table.namecol = ManagedBean
+OverviewPage.ManagedBeanSection.table.namecol = Name
 OverviewPage.ManagedBeanSection.table.scopecol = Scope
+OverviewPage.ManagedBeanSection.table.classcol = Class
 OverviewPage.ManagedBeanSection.managedbeanPageID = com.sybase.stf.jmt.editors.pageflow.managedbean.DataBindingPage
 OverviewPage.ManagedBeanSection.Help.HelpContextID = com.sybase.stf.jmt.faces_config_editor_overview_managedbean
 OverviewPage.ManagedBeanSection.Help.HelpToolTip = Managed Bean
@@ -320,8 +321,8 @@
 #components section
 OverviewPage.ComponentsSection.name = Component Information
 OverviewPage.ComponentsSection.description = This section describes component, render-kit, converter and validator elements
-OverviewPage.ComponentsSection.table.typecol = Element Type
-OverviewPage.ComponentsSection.table.namecol = Element Name
+OverviewPage.ComponentsSection.table.typecol = Name
+OverviewPage.ComponentsSection.table.namecol = Class
 OverviewPage.ComponentsSection.componentsPageID = com.sybase.stf.jmt.editors.pageflow.components.ComponentsPage
 OverviewPage.ComponentsSection.Help.HelpContextID = com.sybase.stf.jmt.faces_config_editor_overview_component
 OverviewPage.ComponentsSection.Help.HelpToolTip = Component
@@ -329,9 +330,9 @@
 #other section
 OverviewPage.OthersSection.name = Others Information
 OverviewPage.OthersSection.description = This section describes application, factory and lifecycle elements
-OverviewPage.OthersSection.table.typecol = Element Type
-OverviewPage.OthersSection.table.namecol = Element Name
-OverviewPage.OthersSection.table.valuecol = Element Value
+OverviewPage.OthersSection.table.typecol = Parent Name
+OverviewPage.OthersSection.table.namecol = Name
+OverviewPage.OthersSection.table.valuecol = Value
 OverviewPage.OthersSection.othersPageID = com.sybase.stf.jmt.editors.pageflow.OthersPage
 OverviewPage.OthersSection.Help.HelpContextID = com.sybase.stf.jmt.faces_config_editor_overview_others
 OverviewPage.OthersSection.Help.HelpToolTip = Others
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/FacesConfigEditor.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/FacesConfigEditor.java
index 3915963..8113d58 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/FacesConfigEditor.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/FacesConfigEditor.java
@@ -85,6 +85,7 @@
 import org.eclipse.jst.jsf.facesconfig.ui.page.IntroductionPage;
 import org.eclipse.jst.jsf.facesconfig.ui.page.ManagedBeanPage;
 import org.eclipse.jst.jsf.facesconfig.ui.page.OthersPage;
+import org.eclipse.jst.jsf.facesconfig.ui.page.OverviewPage;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.DelegatingZoomManager;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.FacesConfigEditorActionBarContributor;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.PageflowEditor;
@@ -110,6 +111,7 @@
 import org.eclipse.ui.dialogs.SaveAsDialog;
 import org.eclipse.ui.forms.editor.FormEditor;
 import org.eclipse.ui.forms.editor.FormPage;
+import org.eclipse.ui.forms.editor.IFormPage;
 import org.eclipse.ui.ide.IGotoMarker;
 import org.eclipse.ui.part.FileEditorInput;
 import org.eclipse.ui.views.contentoutline.ContentOutline;
@@ -142,7 +144,13 @@
 	/** id of the pageflowPage */
 	private int pageflowPageID;
 
-//	private IEditorPart _prevPart;
+	private int managedBeanPageID;
+
+	private int componentsPageID;
+
+	private int othersPageID;
+
+	// private IEditorPart _prevPart;
 
 	/** The pageflow viewer */
 	private PageflowEditor pageflowPage;
@@ -417,28 +425,20 @@
 		try {
 			IntroductionPage page1 = new IntroductionPage(this);
 			addPage(page1, null);
+			
+			IFormPage overviewPage = new OverviewPage(this);
+			addPage(overviewPage, null);
+			
 			// Page flow
 			createAndAddPageflowPage();
-			getFacesConfigAdapter().setFacesConfigEMFModel(getFacesConfig());
-			FC2PFTransformer.getInstance().setFacesConfig(getFacesConfig());
-			FC2PFTransformer.getInstance().setPageflow(
-					pageflowPage.getPageflow());
-			boolean fornew = getFacesConfigAdapter()
-					.updatePageflowFromFacesConfig();
-			pageflowPage.getGraphicalViewer().setContents(
-					pageflowPage.getPageflow());
-			if (fornew) {
-				PageflowLayoutManager.getInstance().layoutPageflow(
-						pageflowPage.getPageflow());
-			}
-			FC2PFTransformer.getInstance().setListenToNotify(true);
+			
 			// pages
-			ManagedBeanPage page3 = new ManagedBeanPage(this);
-			addPage(page3, null);
-			ComponentsPage page2 = new ComponentsPage(this);
-			addPage(page2, null);
-			OthersPage othersPage = new OthersPage(this);
-			addPage(othersPage, null);
+			IFormPage managedBeanPage = new ManagedBeanPage(this);
+			managedBeanPageID = addPage(managedBeanPage, null);
+			IFormPage componentsPage = new ComponentsPage(this);
+			componentsPageID = addPage(componentsPage, null);
+			IFormPage othersPage = new OthersPage(this);
+			othersPageID = addPage(othersPage, null);
 
 			sourcePage = new StructuredTextEditor();
 
@@ -452,7 +452,8 @@
 		} catch (PartInitException e) {
 			EditorPlugin.getDefault().getLog().log(
 					new Status(IStatus.ERROR, EditorPlugin.getPluginId(),
-							IStatus.OK, e.getMessage(), e));
+							IStatus.OK, e.getMessage() == null ? "" : e
+									.getMessage(), e));
 		}
 
 	}
@@ -469,7 +470,17 @@
 
 		getFacesConfigAdapter().setPageflowManager(
 				pageflowPage.getPageflowManager());
-
+		getFacesConfigAdapter().setFacesConfigEMFModel(getFacesConfig());
+		FC2PFTransformer.getInstance().setFacesConfig(getFacesConfig());
+		FC2PFTransformer.getInstance().setPageflow(pageflowPage.getPageflow());
+		boolean fornew = getFacesConfigAdapter()
+				.updatePageflowFromFacesConfig();
+		pageflowPage.setGraphicalViewerContents(pageflowPage.getPageflow());
+		if (fornew) {
+			PageflowLayoutManager.getInstance().layoutPageflow(
+					pageflowPage.getPageflow());
+		}
+		FC2PFTransformer.getInstance().setListenToNotify(true);
 		// getFacesConfigAdapter().updatePageflowFromFacesConfig();
 	}
 
@@ -530,18 +541,18 @@
 	public FacesConfigType getFacesConfig() {
 		// return modelResource.getFacesConfig();
 		FacesConfigType facesConfig = facesConfigAtrifactEdit.getFacesConfig();
-		if (!facesConfig.eAdapters().contains(FC2PFTransformer.getInstance())) {
+		if (!FC2PFTransformer.getInstance().isAdapted(facesConfig)) {
 			Iterator contents = facesConfig.getNavigationRule().iterator();
 			while (contents.hasNext()) {
 				EObject next = ((EObject) contents.next());
 				TreeIterator children = next.eAllContents();
 				while (children.hasNext()) {
-					((EObject) children.next()).eAdapters().add(
-						FC2PFTransformer.getInstance());
+					FC2PFTransformer.getInstance().adapt(
+							(EObject) children.next());
+				}
+				FC2PFTransformer.getInstance().adapt(next);
 			}
-				next.eAdapters().add(FC2PFTransformer.getInstance());
-			}
-			facesConfig.eAdapters().add(FC2PFTransformer.getInstance());
+			FC2PFTransformer.getInstance().adapt(facesConfig);
 		}
 		return facesConfig;
 	}
@@ -562,36 +573,35 @@
 	 * update the source editor to sychronize the saved pageflow.
 	 * 
 	 */
-	private void updateSourcePageFromPageflow() {
-		System.out
-				.println("FacesConfigEditor: update source page from page flow");
-		// InputStream inputStreamOfFacesConfig = null;
-		// try {
-		// ISourceEditingTextTools editingTools = (ISourceEditingTextTools)
-		// sourcePage
-		// .getAdapter(ISourceEditingTextTools.class);
-		//
-		// if (editingTools != null) {
-		// inputStreamOfFacesConfig = new ByteArrayInputStream(
-		// editingTools.getDocument().get().getBytes("UTF-8"));//$NON-NLS-1$
+	// private void updateSourcePageFromPageflow() {
+	// // System.out
+	// // .println("FacesConfigEditor: update source page from page flow");
+	// // InputStream inputStreamOfFacesConfig = null;
+	// // try {
+	// // ISourceEditingTextTools editingTools = (ISourceEditingTextTools)
+	// // sourcePage
+	// // .getAdapter(ISourceEditingTextTools.class);
+	// //
+	// // if (editingTools != null) {
+	// // inputStreamOfFacesConfig = new ByteArrayInputStream(
+	// // editingTools.getDocument().get().getBytes("UTF-8"));//$NON-NLS-1$
+	// // }
+	// //
+	// // } catch (UnsupportedEncodingException e) {
+	// // // PageflowEditor.Encoding.Unsupported = Unsupported Encoding.
+	// // // log.error("PageflowEditor.Encoding.Unsupported", e);
+	// // // //$NON-NLS-1$
+	// // }
+	// //
+	// // if (inputStreamOfFacesConfig == null) {
+	// // return;
+	// // }
+	// // UpdateFacesConfigCommand updateCommand = new
+	// // UpdateFacesConfigCommand(
+	// // getFacesConfigAdapter(), inputStreamOfFacesConfig);
+	// //
+	// // updateCommand.execute();
 		// }
-		//
-		// } catch (UnsupportedEncodingException e) {
-		// // PageflowEditor.Encoding.Unsupported = Unsupported Encoding.
-		// // log.error("PageflowEditor.Encoding.Unsupported", e);
-		// // //$NON-NLS-1$
-		// }
-		//
-		// if (inputStreamOfFacesConfig == null) {
-		// return;
-		// }
-		// UpdateFacesConfigCommand updateCommand = new
-		// UpdateFacesConfigCommand(
-		// getFacesConfigAdapter(), inputStreamOfFacesConfig);
-		//
-		// updateCommand.execute();
-	}
-
 	/**
 	 * This class listens for command stack changes of the pages contained in
 	 * this editor and decides if the editor is dirty or not.
@@ -822,20 +832,21 @@
 					// modelResource.save(Collections.EMPTY_MAP);
 					facesConfigAtrifactEdit.getDeploymentDescriptorResource()
 							.save(Collections.EMPTY_MAP);
-					if (getActiveEditor() == sourcePage) {
-						if (getFacesConfigAdapter().isFacesConfigDirty()) {
-							// if the faces-config file is updated in the source
-							// page,
-							// the pageflow should be updated!
-							updatePageflowPage(false, false);
-						}
-					} else if (getActiveEditor() == pageflowPage) {
-						if (getFacesConfigAdapter().isPageflowDirty()) {
-							// if the pageflow is modified in the pageflow page,
-							// the source editor should be updated.
-							updateSourcePageFromPageflow();
-						}
-					}
+					// if (getActiveEditor() == sourcePage) {
+					// if (getFacesConfigAdapter().isFacesConfigDirty()) {
+					// // if the faces-config file is updated in the source
+					// // page,
+					// // the pageflow should be updated!
+					// updatePageflowPage(false, false);
+					// }
+					// }
+					// else if (getActiveEditor() == pageflowPage) {
+					// if (getFacesConfigAdapter().isPageflowDirty()) {
+					// // if the pageflow is modified in the pageflow page,
+					// // the source editor should be updated.
+					// updateSourcePageFromPageflow();
+					// }
+					// }
 					IFile file = ((IFileEditorInput) getEditorInput())
 							.getFile();
 					pageflowPage.doSave(file, monitor);
@@ -844,8 +855,9 @@
 				} catch (Exception e) {
 					EditorPlugin.getDefault().getLog().log(
 							new Status(IStatus.ERROR, EditorPlugin
-									.getPluginId(), IStatus.OK, e.getMessage(),
-									e));
+									.getPluginId(), IStatus.OK,
+									e.getMessage() == null ? "" : e
+											.getMessage(), e));
 				}
 			}
 		};
@@ -958,20 +970,6 @@
 
 	}
 
-	// /**
-	// * Returns the <code>IContentOutlinePage</code> for this editor.
-	// *
-	// * @return - the <code>IContentOutlinePage</code>
-	// */
-	// protected IContentOutlinePage getOutlinePage() {
-	// // return (IContentOutlinePage)
-	// // _pageflowPage.getAdapter(IContentOutlinePage.class);
-	// if (null == outlinePage) {
-	// outlinePage = new MultiPageEditorOutlinePage();
-	// }
-	// return outlinePage;
-	// }
-
 	/** the delegating ZoomManager */
 	private DelegatingZoomManager delegatingZoomManager = null;
 
@@ -1226,7 +1224,7 @@
 			((FacesConfigEditorActionBarContributor) contributor)
 					.setActivePage(activeEditor);
 		}
-//		_prevPart = activeEditor;
+		// _prevPart = activeEditor;
 	}
 
 	/*
@@ -1238,8 +1236,6 @@
 		super.pageChange(newPageIndex);
 
 		// refresh content depending on current page
-
-		// ((MultiPageEditorPropertySheetPage)getPropertySheetPage()).pagechange(this.getActiveEditor());
 		currentPageChanged();
 	}
 
@@ -1294,17 +1290,17 @@
 	// }
 	public void dispose() {
 		FC2PFTransformer.getInstance().dispose();
-		Iterator contents = getFacesConfig().getNavigationRule().iterator();
-		while (contents.hasNext()) {
-			EObject next = ((EObject) contents.next());
-			TreeIterator children = next.eAllContents();
-			while (children.hasNext()) {
-				((EObject) children.next()).eAdapters().remove(
-					FC2PFTransformer.getInstance());
-		}
-			next.eAdapters().remove(FC2PFTransformer.getInstance());
-		}
-		getFacesConfig().eAdapters().remove(FC2PFTransformer.getInstance());
+//		Iterator contents = getFacesConfig().getNavigationRule().iterator();
+//		while (contents.hasNext()) {
+//			EObject next = ((EObject) contents.next());
+//			TreeIterator children = next.eAllContents();
+//			while (children.hasNext()) {
+//				FC2PFTransformer.getInstance().unAdapt(
+//						(EObject) children.next());
+//			}
+//			FC2PFTransformer.getInstance().unAdapt((EObject) next);
+//		}
+		// FC2PFTransformer.getInstance().unAdapt(getFacesConfig());
 
 		ResourcesPlugin.getWorkspace().removeResourceChangeListener(
 				resourceChangeListener);
@@ -1358,15 +1354,10 @@
 	 * @return - the <code>IContentOutlinePage</code>
 	 */
 	protected IContentOutlinePage getOutlinePage() {
-		// return (IContentOutlinePage)
-		// _pageflowPage.getAdapter(IContentOutlinePage.class);
 		if (null == outlinePage) {
 			outlinePage = new MultiPageEditorOutlinePage();
 		}
 		return outlinePage;
-		// use the source page's outline.
-		// return (IContentOutlinePage) this.getEditor(sourcePageId).getAdapter(
-		// IContentOutlinePage.class);
 	}
 
 	public void addSelectionChangedListener(ISelectionChangedListener listener) {
@@ -1406,8 +1397,8 @@
 
 	public void gotoMarker(IMarker marker) {
 		// TODO Auto-generated method stub
-//			setActivePage(sourcePageId);
-//			IDE.gotoMarker(fTextEditor, marker);
+		// setActivePage(sourcePageId);
+		// IDE.gotoMarker(fTextEditor, marker);
 	}
 
 	public EditingDomainActionBarContributor getActionBarContributor() {
@@ -1490,19 +1481,15 @@
 		}
 	}
 
-	public void setActiveEditorPage(String className) {
-		// TODO Auto-generated method stub
-		if (className.equals(PageflowEditor.PAGE_ID)) {
+	public void setActiveEditorPage(String pageID) {
+		if (pageID.equals(PageflowEditor.PAGE_ID)) {
 			setActivePage(pageflowPageID);
+		} else if (pageID.equals(ManagedBeanPage.PAGE_ID)) {
+			setActivePage(managedBeanPageID);
+		} else if (pageID.equals(ComponentsPage.PAGE_ID)) {
+			setActivePage(componentsPageID);
+		} else if (pageID.equals(OthersPage.PAGE_ID)) {
+			setActivePage(othersPageID);
 		}
-		// else if (className.equals(ManagedBeanPage.PAGE_ID)) {
-		// setActivePage(managedBeanPageID);
-		// } else if (className.equals(OthersPage.PAGE_ID)) {
-		// setActivePage(othersPageID);
-		// } else if (className.equals(ComponentsPage.PAGE_ID)) {
-		// setActivePage(componentsPageID);
-		// } else if (className.indexOf("StructuredTextEditor") > 0) {
-		// setActivePage(sourcePageID);
-		// }
 	}
 }
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/IconResources.properties b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/IconResources.properties
index dfe699d..3b27961 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/IconResources.properties
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/IconResources.properties
@@ -30,7 +30,7 @@
 Pageflow.elementPropertySource.integralValue = facesconfig/Pageflow_IntegralValue.gif
 Pageflow.elementPropertySource.genericValue = facesconfig/Pageflow_GenericValue.gif
 
-Databinding.managedbeanType = facesconfig/ManagedBeanType.gif
+Databinding.managedbeanType = facesconfig/FacesConfig_ManagedBean.gif
 Databinding.operation = facesconfig/operation.gif
 
 Components.component = facesconfig/FacesConfig_Component.gif
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/NewEditorResources.properties b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/NewEditorResources.properties
index 6856be4..ea2d9b5 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/NewEditorResources.properties
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/NewEditorResources.properties
@@ -148,12 +148,12 @@
 # managed bean section
 OverviewPage.ManagedBeanSection.name = ManagedBean Information
 OverviewPage.ManagedBeanSection.description = This section describes the managed beans
-OverviewPage.ManagedBeanSection.table.namecol = ManagedBean
+OverviewPage.ManagedBeanSection.table.namecol = Name
 OverviewPage.ManagedBeanSection.table.scopecol = Scope
+OverviewPage.ManagedBeanSection.table.classcol = Class
 OverviewPage.ManagedBeanSection.managedbeanPageID = com.sybase.stf.jmt.editors.pageflow.managedbean.DataBindingPage
 OverviewPage.ManagedBeanSection.Help.HelpContextID = com.sybase.stf.jmt.faces_config_editor_overview_managedbean
 OverviewPage.ManagedBeanSection.Help.HelpToolTip = Managed Bean
-
 #components section
 OverviewPage.ComponentsSection.name = Component Information
 OverviewPage.ComponentsSection.description = This section describes component, render-kit, converter and validator elements
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/NewEditorResourcesNLS.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/NewEditorResourcesNLS.java
index 3dc9d8a..9e97080 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/NewEditorResourcesNLS.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/NewEditorResourcesNLS.java
@@ -204,6 +204,8 @@
 
 	public static String OverviewPage_ManagedBeanSection_table_scopecol;
 
+	public static String OverviewPage_ManagedBeanSection_table_classcol;
+
 	public static String OverviewPage_ManagedBeanSection_managedbeanPageID;
 
 	public static String OverviewPage_ManagedBeanSection_Help_HelpContextID;
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/NewEditorResourcesNLS.properties b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/NewEditorResourcesNLS.properties
index c6451c6..cbc3432 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/NewEditorResourcesNLS.properties
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/NewEditorResourcesNLS.properties
@@ -148,12 +148,12 @@
 # managed bean section
 OverviewPage_ManagedBeanSection_name = ManagedBean Information
 OverviewPage_ManagedBeanSection_description = This section describes the managed beans
-OverviewPage_ManagedBeanSection_table_namecol = ManagedBean
+OverviewPage_ManagedBeanSection_table_namecol = Name
 OverviewPage_ManagedBeanSection_table_scopecol = Scope
+OverviewPage_ManagedBeanSection_table_classcol = Class
 OverviewPage_ManagedBeanSection_managedbeanPageID = com.sybase.stf.jmt.editors.pageflow.managedbean.DataBindingPage
 OverviewPage_ManagedBeanSection_Help_HelpContextID = com.sybase.stf.jmt.faces_config_editor_overview_managedbean
 OverviewPage_ManagedBeanSection_Help_HelpToolTip = Managed Bean
-
 #components section
 OverviewPage_ComponentsSection_name = Component Information
 OverviewPage_ComponentsSection_description = This section describes component, render-kit, converter and validator elements
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/page/ComponentsPage.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/page/ComponentsPage.java
index c8a93b8..6b2dd9e 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/page/ComponentsPage.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/page/ComponentsPage.java
@@ -57,6 +57,8 @@
  */
 public class ComponentsPage extends FacesConfigMasterDetailPage {
 
+	public static final String PAGE_ID = "org.eclipse.jst.jsf.facesconfig.ui.page.ComponentsPage";
+
 	private IContentOutlinePage contentOutlinePage;
 
 	/**
@@ -204,10 +206,11 @@
 					.addSelectionChangedListener(new ISelectionChangedListener() {
 						// This ensures that we handle selections correctly.
 						public void selectionChanged(SelectionChangedEvent event) {
-							handleContentOutlineSelection(event.getSelection());
+							setSelection(event.getSelection());
 						}
 					});
 
+			addSelectionChangedListener((ContentOutlinePage) contentOutlinePage);
 		}
 
 		return contentOutlinePage;
@@ -219,10 +222,18 @@
 	 * 
 	 * @param selection
 	 */
-	protected void handleContentOutlineSelection(ISelection selection) {
+	public void setSelection(ISelection selection) {
 
 		if (selection instanceof IStructuredSelection) {
 			IStructuredSelection ss = (IStructuredSelection) selection;
+			IStructuredSelection currentSelection = (IStructuredSelection) this
+					.getSelection();
+			if ((!ss.isEmpty())
+					&& (!currentSelection.isEmpty())
+					&& (ss.getFirstElement() == currentSelection
+							.getFirstElement())) {
+				return;
+			}
 			EObject component = null;
 			if (ss.getFirstElement() instanceof AttributeType
 					|| ss.getFirstElement() instanceof PropertyType
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/page/FacesConfigMasterDetailPage.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/page/FacesConfigMasterDetailPage.java
index dd0b9ca..05a5c00 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/page/FacesConfigMasterDetailPage.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/page/FacesConfigMasterDetailPage.java
@@ -25,9 +25,8 @@
 import org.eclipse.jface.viewers.ISelectionProvider;
 import org.eclipse.jface.viewers.SelectionChangedEvent;
 import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jst.jsf.facesconfig.common.CommonPlugin;
+import org.eclipse.jst.jsf.facesconfig.ui.EditorPlugin;
 import org.eclipse.jst.jsf.facesconfig.ui.FacesConfigEditor;
-import org.eclipse.jst.jsf.facesconfig.ui.IconResources;
 import org.eclipse.jst.jsf.facesconfig.ui.section.FacesConfigMasterSection;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.SashForm;
@@ -58,8 +57,8 @@
 		IFacesConfigPage, IDetailsPageProvider, ISelectionChangedListener,
 		ISelectionProvider {
 
-	private final static Image BANNER_IMAGE = CommonPlugin.getDefault()
-			.getImage(IconResources.getString("Common.formbanner"));
+	private final static Image BANNER_IMAGE = EditorPlugin.getDefault()
+			.getImage("form_banner.gif");
 
 	protected FacesConfigMasterSection[] facesConfigMasterSections;
 
@@ -319,14 +318,11 @@
 
 	public void removeSelectionChangedListener(
 			ISelectionChangedListener listener) {
-		// TODO Auto-generated method stub
 		selectionChangedListeners.remove(listener);
 	}
 
 	public void setSelection(ISelection selection) {
 		// TODO Auto-generated method stub
-		if (selection != null && getActiveSection() != null)
-			getActiveSection().setSelection(selection);
 
 	}
 
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/page/IntroductionPage.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/page/IntroductionPage.java
index 0a73df3..5f5cc6f 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/page/IntroductionPage.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/page/IntroductionPage.java
@@ -15,10 +15,9 @@
 import org.eclipse.jface.viewers.ISelectionChangedListener;
 import org.eclipse.jface.viewers.ISelectionProvider;
 import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jst.jsf.facesconfig.common.CommonPlugin;
 import org.eclipse.jst.jsf.facesconfig.common.guiutils.IntroductionSection;
+import org.eclipse.jst.jsf.facesconfig.ui.EditorPlugin;
 import org.eclipse.jst.jsf.facesconfig.ui.FacesConfigEditor;
-import org.eclipse.jst.jsf.facesconfig.ui.IconResources;
 import org.eclipse.jst.jsf.facesconfig.ui.NewEditorResourcesNLS;
 import org.eclipse.ui.forms.IManagedForm;
 import org.eclipse.ui.forms.editor.FormPage;
@@ -52,8 +51,7 @@
 		FormToolkit toolkit = getEditor().getToolkit();
 		form.setText(NewEditorResourcesNLS.editor_pageflow_page_intro_title);
 
-		form.setBackgroundImage(CommonPlugin.getDefault().getImage(
-				IconResources.getString("Common.formbanner")));
+		form.setBackgroundImage(EditorPlugin.getDefault().getImage("form_banner.gif"));
 
 		// create a layout
 		TableWrapLayout layout = new TableWrapLayout();
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/page/ManagedBeanPage.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/page/ManagedBeanPage.java
index c167b63..9e9afbe 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/page/ManagedBeanPage.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/page/ManagedBeanPage.java
@@ -47,6 +47,8 @@
  */
 public class ManagedBeanPage extends FacesConfigMasterDetailPage {
 
+	public static final String PAGE_ID = "org.eclipse.jst.jsf.facesconfig.ui.page.ManagedBeanPage";
+
 	private IContentOutlinePage contentOutlinePage;
 
 	public ManagedBeanPage(FacesConfigEditor editor) {
@@ -131,7 +133,7 @@
 					.addSelectionChangedListener(new ISelectionChangedListener() {
 						// This ensures that we handle selections correctly.
 						public void selectionChanged(SelectionChangedEvent event) {
-							handleContentOutlineSelection(event.getSelection());
+							setSelection(event.getSelection());
 						}
 					});
 
@@ -148,7 +150,7 @@
 	 * 
 	 * @param selection
 	 */
-	protected void handleContentOutlineSelection(ISelection selection) {
+	public void setSelection(ISelection selection) {
 
 		if (selection instanceof IStructuredSelection) {
 			IStructuredSelection ss = (IStructuredSelection) selection;
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/page/OthersPage.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/page/OthersPage.java
index 0e1592d..b894345 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/page/OthersPage.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/page/OthersPage.java
@@ -18,6 +18,7 @@
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.impl.AdapterImpl;
+import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
 import org.eclipse.emf.edit.domain.EditingDomain;
 import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
@@ -26,20 +27,20 @@
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.ISelectionChangedListener;
 import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.SelectionChangedEvent;
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jface.viewers.TreeViewer;
 import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.jface.viewers.ViewerFilter;
 import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.jst.jsf.facesconfig.common.CommonPlugin;
 import org.eclipse.jst.jsf.facesconfig.emf.ApplicationType;
 import org.eclipse.jst.jsf.facesconfig.emf.FacesConfigPackage;
 import org.eclipse.jst.jsf.facesconfig.emf.FacesConfigType;
 import org.eclipse.jst.jsf.facesconfig.emf.FactoryType;
 import org.eclipse.jst.jsf.facesconfig.emf.LifecycleType;
+import org.eclipse.jst.jsf.facesconfig.ui.EditorPlugin;
 import org.eclipse.jst.jsf.facesconfig.ui.FacesConfigEditor;
-import org.eclipse.jst.jsf.facesconfig.ui.IconResources;
 import org.eclipse.jst.jsf.facesconfig.ui.NewEditorResourcesNLS;
 import org.eclipse.jst.jsf.facesconfig.ui.section.AbstractFacesConfigSection;
 import org.eclipse.jst.jsf.facesconfig.ui.section.ApplicationSection;
@@ -73,8 +74,10 @@
 public class OthersPage extends FormPage implements IFacesConfigPage,
 		ISelectionProvider, ISelectionChangedListener {
 
-	private final static Image BANNER_IMAGE = CommonPlugin.getDefault()
-			.getImage(IconResources.getString("Common.formbanner"));
+	public static final String PAGE_ID = "org.eclipse.jst.jsf.facesconfig.ui.page.OthersPage";
+
+	private final static Image BANNER_IMAGE = EditorPlugin.getDefault()
+			.getImage("form_banner.gif");
 
 	private List leftSections;
 
@@ -450,12 +453,6 @@
 		selectionChangedListeners.remove(listener);
 	}
 
-	public void setSelection(ISelection selection) {
-		// TODO Auto-generated method stub
-		if (selection != null && getActiveSection() != null)
-			getActiveSection().setSelection(selection);
-	}
-
 	public void selectionChanged(SelectionChangedEvent event) {
 
 		if (event.getSource() instanceof OthersPageBaseSection) {
@@ -641,7 +638,7 @@
 					.addSelectionChangedListener(new ISelectionChangedListener() {
 						// This ensures that we handle selections correctly.
 						public void selectionChanged(SelectionChangedEvent event) {
-							handleContentOutlineSelection(event.getSelection());
+							setSelection(event.getSelection());
 						}
 					});
 
@@ -656,49 +653,76 @@
 	 * 
 	 * @param selection
 	 */
-	protected void handleContentOutlineSelection(ISelection selection) {
+	public void setSelection(ISelection selection) {
 
-		//TODO sfshi
-		
-		// if (selection instanceof IStructuredSelection) {
-		// IStructuredSelection ss = (IStructuredSelection) selection;
-		// EObject component = null;
-		// if (ss.getFirstElement() instanceof AttributeType
-		// || ss.getFirstElement() instanceof PropertyType
-		// || ss.getFirstElement() instanceof FacetType
-		// || ss.getFirstElement() instanceof RendererType) {
-		// component = ((EObject) ss.getFirstElement()).eContainer();
-		// } else if (ss.getFirstElement() instanceof EObject) {
-		// component = (EObject) ss.getFirstElement();
-		// }
-		//
-		// if (component != null) {
-		// FacesConfigMasterSection section = null;
-		// if (FacesConfigPackage.eINSTANCE.getComponentType().isInstance(
-		// component)) {
-		// section = facesConfigMasterSections[0];
-		// } else if (FacesConfigPackage.eINSTANCE.getConverterType()
-		// .isInstance(component)) {
-		// section = facesConfigMasterSections[1];
-		// } else if (FacesConfigPackage.eINSTANCE.getRenderKitType()
-		// .isInstance(component)) {
-		// section = facesConfigMasterSections[2];
-		// } else if (FacesConfigPackage.eINSTANCE.getValidatorType()
-		// .isInstance(component)) {
-		// section = facesConfigMasterSections[3];
-		// }
-		//
-		// if (!section.getSection().isExpanded()) {
-		// this.closeOtherSections(section);
-		// GridData gd = new GridData(GridData.FILL_BOTH);
-		// section.getSection().setLayoutData(gd);
-		// section.getSection().setExpanded(true);
-		// }
-		// IStructuredSelection newselection = new StructuredSelection(
-		// component);
-		// section.getStructuredViewer().setSelection(newselection);
-		// }
-		// }
+		if (selection instanceof IStructuredSelection) {
+			IStructuredSelection ss = (IStructuredSelection) selection;
+			if (ss.isEmpty())
+				return;
 
+			EObject object = (EObject) ss.getFirstElement();
+			OthersPageBaseSection section = null;
+
+			if (FacesConfigPackage.eINSTANCE.getActionListenerType()
+					.isInstance(object)) {
+				section = (OthersPageBaseSection) leftSections.get(0);
+			} else if (FacesConfigPackage.eINSTANCE.getDefaultRenderKitIdType()
+					.isInstance(object)) {
+				section = (OthersPageBaseSection) leftSections.get(1);
+			} else if (FacesConfigPackage.eINSTANCE.getLocaleConfigType()
+					.isInstance(object)) {
+				section = (OthersPageBaseSection) leftSections.get(2);
+			} else if (FacesConfigPackage.eINSTANCE.getDefaultLocaleType()
+					.isInstance(object)) {
+				section = (OthersPageBaseSection) leftSections.get(2);
+			} else if (FacesConfigPackage.eINSTANCE.getSupportedLocaleType()
+					.isInstance(object)) {
+				section = (OthersPageBaseSection) leftSections.get(2);
+			} else if (FacesConfigPackage.eINSTANCE.getMessageBundleType()
+					.isInstance(object)) {
+				section = (OthersPageBaseSection) leftSections.get(3);
+			} else if (FacesConfigPackage.eINSTANCE.getNavigationHandlerType()
+					.isInstance(object)) {
+				section = (OthersPageBaseSection) leftSections.get(4);
+			} else if (FacesConfigPackage.eINSTANCE.getPropertyResolverType()
+					.isInstance(object)) {
+				section = (OthersPageBaseSection) leftSections.get(5);
+			} else if (FacesConfigPackage.eINSTANCE.getStateManagerType()
+					.isInstance(object)) {
+				section = (OthersPageBaseSection) leftSections.get(6);
+			} else if (FacesConfigPackage.eINSTANCE.getVariableResolverType()
+					.isInstance(object)) {
+				section = (OthersPageBaseSection) leftSections.get(7);
+			} else if (FacesConfigPackage.eINSTANCE.getViewHandlerType()
+					.isInstance(object)) {
+				section = (OthersPageBaseSection) leftSections.get(8);
+			} else if (FacesConfigPackage.eINSTANCE.getApplicationFactoryType()
+					.isInstance(object)) {
+				section = (OthersPageBaseSection) rightSections.get(0);
+			} else if (FacesConfigPackage.eINSTANCE
+					.getFacesContextFactoryType().isInstance(object)) {
+				section = (OthersPageBaseSection) rightSections.get(1);
+			} else if (FacesConfigPackage.eINSTANCE.getLifecycleFactoryType()
+					.isInstance(object)) {
+				section = (OthersPageBaseSection) rightSections.get(2);
+			} else if (FacesConfigPackage.eINSTANCE.getRenderKitFactoryType()
+					.isInstance(object)) {
+				section = (OthersPageBaseSection) rightSections.get(3);
+			} else if (FacesConfigPackage.eINSTANCE.getPhaseListenerType()
+					.isInstance(object)) {
+				section = (OthersPageBaseSection) rightSections.get(4);
+			}
+			if (section != null) {
+				if (!section.getSection().isExpanded()) {
+					this.closeOtherSections(section);
+					GridData gd = new GridData(GridData.FILL_BOTH);
+					section.getSection().setLayoutData(gd);
+					section.getSection().setExpanded(true);
+				}
+				IStructuredSelection newselection = new StructuredSelection(
+						object);
+				section.getTableViewer().setSelection(newselection);
+			}
+		}
 	}
 }
\ No newline at end of file
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/page/OverviewPage.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/page/OverviewPage.java
index 9ffa4ef..1faf20b 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/page/OverviewPage.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/page/OverviewPage.java
@@ -17,8 +17,8 @@
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jst.jsf.facesconfig.emf.FacesConfigType;
 import org.eclipse.jst.jsf.facesconfig.ui.EditorPlugin;
-import org.eclipse.jst.jsf.facesconfig.ui.EditorResourcesNLS;
 import org.eclipse.jst.jsf.facesconfig.ui.FacesConfigEditor;
+import org.eclipse.jst.jsf.facesconfig.ui.NewEditorResourcesNLS;
 import org.eclipse.jst.jsf.facesconfig.ui.section.OverviewComponentsSection;
 import org.eclipse.jst.jsf.facesconfig.ui.section.OverviewGeneralSection;
 import org.eclipse.jst.jsf.facesconfig.ui.section.OverviewManagedBeanSection;
@@ -74,7 +74,7 @@
 	protected void createFormContent(IManagedForm managedForm) {
 
 		ScrolledForm form = managedForm.getForm();
-		form.setText(EditorResourcesNLS.OverviewPage_PageflowOverview_summary);
+		form.setText(NewEditorResourcesNLS.OverviewPage_PageflowOverview_summary);
 		form.setBackgroundImage(EditorPlugin.getDefault().getImage(
 				"form_banner.gif")); //$NON-NLS-1$
 		Composite body = form.getBody();
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/PageflowEditor.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/PageflowEditor.java
index 991ea75..1d08b95 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/PageflowEditor.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/PageflowEditor.java
@@ -83,7 +83,7 @@
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.editpart.INodePreference;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.editpart.PageflowEditPartsFactory;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.editpart.PageflowNodeEditPart;
-import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFPage;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPage;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.Pageflow;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.util.PageflowAnnotationUtil;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.util.PageflowModelManager;
@@ -308,7 +308,7 @@
 		addEditPartAction(new ShowPropertyViewAction((IWorkbenchPart) this));
 
 		// Allows showing property view for the pageflow
-		addEditPartAction(new ShowPaletteViewAction((IWorkbenchPart) this));
+		// addEditPartAction(new ShowPaletteViewAction((IWorkbenchPart) this));
 
 		// register alignment actions
 		addEditPartAction(new AlignmentAction((IWorkbenchPart) this,
@@ -418,7 +418,7 @@
 
 		// initialize the viewer with input
 		viewer.setEditPartFactory(new PageflowEditPartsFactory());
-		 viewer.setContents(getPageflow());
+//		 viewer.setContents(getPageflow());
 
 		// support the resource drag&drop
 		viewer
@@ -430,7 +430,7 @@
 				});
 
 		// apply Editor's preferences
-		propertyChange(null);
+//		propertyChange(null);
 		// add listener to Editor's preferences changing
 		EditorPlugin.getDefault().getPreferenceStore()
 				.addPropertyChangeListener(this);
@@ -809,6 +809,11 @@
 	public GraphicalViewer getGraphicalViewer() {
 		return viewer;
 	}
+	
+	public void setGraphicalViewerContents(Object contents){
+		viewer.setContents(contents);
+		propertyChange(null);
+	}
 
 	/*
 	 * (non-Javadoc)
@@ -1141,7 +1146,7 @@
 	 * @param fullPath
 	 */
 	public void webPageChanged(IPath fullPath) {
-		PFPage page = getPageflowManager().foundPage(
+		PageflowPage page = getPageflowManager().foundPage(
 				WebrootUtil.getWebPath(fullPath));
 
 		if (page != null && getGraphicalViewer() != null
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/PageflowEditorContextMenuProvider.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/PageflowEditorContextMenuProvider.java
index 86ce278..4679a89 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/PageflowEditorContextMenuProvider.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/PageflowEditorContextMenuProvider.java
@@ -95,11 +95,11 @@
 			submenu.add(action);
 		}
 
-		action = getActionRegistry().getAction(
-				ShowPaletteViewAction.SHOW_PALETTE_VIEW);
-		if (null != action && action.isEnabled()) {
-			submenu.add(action);
-		}
+//		action = getActionRegistry().getAction(
+//				ShowPaletteViewAction.SHOW_PALETTE_VIEW);
+//		if (null != action && action.isEnabled()) {
+//			submenu.add(action);
+//		}
 
 		if (!submenu.isEmpty()) {
 			menuManager.appendToGroup(GEFActionConstants.GROUP_REST, submenu);
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/PageflowMessages.properties b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/PageflowMessages.properties
index bbb29d9..4e26800 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/PageflowMessages.properties
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/PageflowMessages.properties
@@ -95,6 +95,9 @@
 Pageflow.Model.Attributes.outcome = from-outcome
 Pageflow.Model.Attributes.redirect = redirect
 
+Pageflow.Model.Attributes.fromaction = from-action
+Pageflow.Model.Attributes.referenceLink = reference
+
 Pageflow.Model.Items.Pageflow = File
 Pageflow.Model.Items.PFBegin = Begin
 Pageflow.Model.Items.PFEnd = End
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/PageflowPaletteRoot.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/PageflowPaletteRoot.java
index 316da5f..b68938d 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/PageflowPaletteRoot.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/PageflowPaletteRoot.java
@@ -24,8 +24,8 @@
 import org.eclipse.jst.jsf.facesconfig.ui.EditorPlugin;
 import org.eclipse.jst.jsf.facesconfig.ui.EditorResources;
 import org.eclipse.jst.jsf.facesconfig.ui.IconResources;
-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.PageflowLink;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPage;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.util.ModelCreationFactory;
 
 /**
@@ -77,7 +77,7 @@
 						"Pageflow.PaletteTool.Link.Label"), //$NON-NLS-1$
 				EditorResources.getInstance().getString(
 						"Pageflow.PaletteTool.Link.Description"), //$NON-NLS-1$
-				new ModelCreationFactory(PFLink.class),
+				new ModelCreationFactory(PageflowLink.class),
 				EditorPlugin.getDefault().getImageDescriptor(
 						IconResources.getString("Pageflow.link.small")), //$NON-NLS-1$
 				EditorPlugin.getDefault().getImageDescriptor(
@@ -102,7 +102,7 @@
 						"Pageflow.PaletteTool.Page.Label"), //$NON-NLS-1$
 				EditorResources.getInstance().getString(
 						"Pageflow.PaletteTool.Page.Description"), //$NON-NLS-1$
-				PFPage.class, new ModelCreationFactory(PFPage.class),
+				PageflowPage.class, new ModelCreationFactory(PageflowPage.class),
 				EditorPlugin.getDefault().getImageDescriptor(
 						IconResources.getString("Pageflow.page.small")), //$NON-NLS-1$
 				EditorPlugin.getDefault().getImageDescriptor(
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/action/OpenEditorAction.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/action/OpenEditorAction.java
index a5d69ac..dbdb51b 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/action/OpenEditorAction.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/action/OpenEditorAction.java
@@ -21,7 +21,7 @@
 import org.eclipse.gef.ui.actions.SelectionAction;
 import org.eclipse.jst.jsf.facesconfig.ui.EditorResources;
 import org.eclipse.jst.jsf.facesconfig.ui.FacesConfigEditor;
-import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFPage;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPage;
 import org.eclipse.ui.IWorkbenchPart;
 
 /**
@@ -82,7 +82,7 @@
 				return false;
 			}
 			EditPart part = (EditPart) o;
-			if (!(part.getModel() instanceof PFPage)) {
+			if (!(part.getModel() instanceof PageflowPage)) {
 				return false;
 			}
 		}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/command/BendpointCommand.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/command/BendpointCommand.java
index fb91977..cf03f6c 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/command/BendpointCommand.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/command/BendpointCommand.java
@@ -15,7 +15,7 @@
 import org.eclipse.draw2d.geometry.Dimension;
 import org.eclipse.draw2d.geometry.Point;
 import org.eclipse.gef.commands.Command;
-import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink;
 
 /**
  * base class for bend point commands.
@@ -29,7 +29,7 @@
 	protected Point location;
 
 	/** the parent link */
-	protected PFLink link;
+	protected PageflowLink link;
 
 	/** relative dimension between the bendpoint with start point of the pflink */
 	private Dimension dimStart;
@@ -82,7 +82,7 @@
 	 * 
 	 * @return - parent link
 	 */
-	protected PFLink getPFLink() {
+	protected PageflowLink getPFLink() {
 		return link;
 	}
 
@@ -134,7 +134,7 @@
 	 * @param newLink -
 	 *            new parent pflink
 	 */
-	public void setPFLink(PFLink newLink) {
+	public void setPFLink(PageflowLink newLink) {
 		link = newLink;
 	}
 }
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/command/ConnectionCommand.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/command/ConnectionCommand.java
index 86d8eaa..412b10d 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/command/ConnectionCommand.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/command/ConnectionCommand.java
@@ -15,7 +15,7 @@
 import org.eclipse.gef.commands.Command;
 import org.eclipse.jst.jsf.facesconfig.ui.EditorResources;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.layout.PageflowLayoutManager;
-import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink;
 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.util.PageflowValidation;
@@ -39,7 +39,7 @@
 	protected PageflowNode target;
 
 	/** pageflow link */
-	protected PFLink link;
+	protected PageflowLink link;
 
 	public ConnectionCommand() {
 		// Pageflow.Commands.ConnectionCommand.Label = Connection
@@ -255,7 +255,7 @@
 	 * 
 	 * @return - the pageflow link.
 	 */
-	public PFLink getPFLink() {
+	public PageflowLink getPFLink() {
 		return link;
 	}
 
@@ -285,7 +285,7 @@
 	 * @param link -
 	 *            new pageflow link
 	 */
-	public void setPFLink(PFLink link) {
+	public void setPFLink(PageflowLink link) {
 		this.link = link;
 		oldSource = link.getSource();
 		oldTarget = link.getTarget();
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/command/CreateBendpointCommand.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/command/CreateBendpointCommand.java
index ae643e1..a0a2285 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/command/CreateBendpointCommand.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/command/CreateBendpointCommand.java
@@ -16,7 +16,7 @@
 
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.jst.jsf.facesconfig.ui.EditorResources;
-import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLinkBendpoint;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLinkBendpoint;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowFactory;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPackage;
 
@@ -43,7 +43,7 @@
 		PageflowPackage pageflowPackage = (PageflowPackage) registry
 				.get(pageflowURI);
 		PageflowFactory factory = pageflowPackage.getPageflowFactory();
-		PFLinkBendpoint _newBendpoint = factory.createPFLinkBendpoint();
+		PageflowLinkBendpoint _newBendpoint = factory.createPFLinkBendpoint();
 
 		_newBendpoint.setRelativeDimensions(getFirstRelativeDimension(),
 				getSecondRelativeDimension());
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/command/CreateNodeCommand.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/command/CreateNodeCommand.java
index f1d28cb..2a0eb7b 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/command/CreateNodeCommand.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/command/CreateNodeCommand.java
@@ -21,7 +21,7 @@
 import org.eclipse.jst.jsf.facesconfig.common.dialogs.CommonResourceDialog;
 import org.eclipse.jst.jsf.facesconfig.ui.EditorPlugin;
 import org.eclipse.jst.jsf.facesconfig.ui.EditorResources;
-import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFPage;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPage;
 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.util.PageflowValidation;
@@ -170,8 +170,8 @@
 							return false;
 						}
 
-						((PFPage) (child)).setPath(jsfSelection);
-						((PFPage) (child)).setName(WebrootUtil
+						((PageflowPage) (child)).setPath(jsfSelection);
+						((PageflowPage) (child)).setName(WebrootUtil
 								.getPageNameFromWebPath(jsfSelection));
 					}
 
@@ -229,12 +229,12 @@
 	public boolean preExecute() {
 		// note that the model adds the ports to the node in this call
 		// pop up the new the wizard to create the new jsf file
-		if (child instanceof PFPage) {
+		if (child instanceof PageflowPage) {
 			// if the new page's file path is not empty, i.e., drag a file from
 			// resource navigator view
-			if (null != ((PFPage) child).getPath()) {
+			if (null != ((PageflowPage) child).getPath()) {
 				if (PageflowValidation.getInstance().isExistedPage(parent,
-						(PFPage) child)) {
+						(PageflowPage) child)) {
 					// Pageflow.PageflowEditor.Alert.DNDResourceTitle = Pageflow
 					// Creation Error
 					// Pageflow.PageflowEditor.Alert.ExistingPage = The web page
@@ -242,7 +242,7 @@
 					EditorPlugin.getAlerts().error(
 							"Pageflow.PageflowEditor.Alert.DNDResourceTitle",
 							"Pageflow.PageflowEditor.Alert.ExistingPage",
-							((PFPage) child).getPath());
+							((PageflowPage) child).getPath());
 					return false;
 				}
 			} else
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/command/DeleteBendpointCommand.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/command/DeleteBendpointCommand.java
index 749bfeb..3505a59 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/command/DeleteBendpointCommand.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/command/DeleteBendpointCommand.java
@@ -13,7 +13,7 @@
 package org.eclipse.jst.jsf.facesconfig.ui.pageflow.command;
 
 import org.eclipse.jst.jsf.facesconfig.ui.EditorResources;
-import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLinkBendpoint;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLinkBendpoint;
 
 /**
  * 
@@ -21,7 +21,7 @@
 public class DeleteBendpointCommand extends BendpointCommand {
 
 	/** the deleting bendpoint */
-	private PFLinkBendpoint bendpoint;
+	private PageflowLinkBendpoint bendpoint;
 
 	public DeleteBendpointCommand() {
 
@@ -38,7 +38,7 @@
 	 */
 	public void execute() {
 		super.execute();
-		bendpoint = (PFLinkBendpoint) getPFLink().getBendPoints().get(
+		bendpoint = (PageflowLinkBendpoint) getPFLink().getBendPoints().get(
 				getIndex());
 		getPFLink().removeBendpoint(getIndex());
 	}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/command/DeleteNodeCommand.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/command/DeleteNodeCommand.java
index 0b79261..dac8bb7 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/command/DeleteNodeCommand.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/command/DeleteNodeCommand.java
@@ -17,7 +17,7 @@
 
 import org.eclipse.gef.commands.Command;
 import org.eclipse.jst.jsf.facesconfig.ui.EditorResources;
-import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.Pageflow;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowNode;
 
@@ -95,7 +95,7 @@
 			// Note:should save the source and target of the link, otherwise
 			// source and target will be lost,
 			// when the source and target node remove the link.
-			PFLink link = (PFLink) node.getOutlinks().get(0);
+			PageflowLink link = (PageflowLink) node.getOutlinks().get(0);
 			sourceConnections.add(link);
 			sourceConnectionSources.add(link.getSource());
 			sourceConnectionTargets.add(link.getTarget());
@@ -109,7 +109,7 @@
 			// Note: should save the source and target of the link, otherwise
 			// source and target will be lost,
 			// when the source and target node remove the link.
-			PFLink link = (PFLink) node.getInlinks().get(0);
+			PageflowLink link = (PageflowLink) node.getInlinks().get(0);
 			targetConnections.add(link);
 			targetConnectionSources.add(link.getSource());
 			targetConnectionTargets.add(link.getTarget());
@@ -140,7 +140,7 @@
 	private void restoreConnections(PageflowNode node) {
 		for (int i = 0; i < sourceConnections.size(); i++) {
 			// restore the link with the source and target
-			PFLink link = (PFLink) sourceConnections.get(i);
+			PageflowLink link = (PageflowLink) sourceConnections.get(i);
 			PageflowNode source = (PageflowNode) sourceConnectionSources.get(i);
 			PageflowNode target = (PageflowNode) sourceConnectionTargets.get(i);
 			link.setSource(source);
@@ -153,7 +153,7 @@
 		sourceConnections.clear();
 		for (int i = 0; i < targetConnections.size(); i++) {
 			// restore the link with the source and target
-			PFLink link = (PFLink) targetConnections.get(i);
+			PageflowLink link = (PageflowLink) targetConnections.get(i);
 			PageflowNode source = (PageflowNode) targetConnectionSources.get(i);
 			PageflowNode target = (PageflowNode) targetConnectionTargets.get(i);
 			link.setSource(source);
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/command/MoveBendpointCommand.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/command/MoveBendpointCommand.java
index d5a9d31..0927476 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/command/MoveBendpointCommand.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/command/MoveBendpointCommand.java
@@ -16,7 +16,7 @@
 
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.jst.jsf.facesconfig.ui.EditorResources;
-import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLinkBendpoint;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLinkBendpoint;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowFactory;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPackage;
 
@@ -27,7 +27,7 @@
 	/**
 	 * old bend point of the link
 	 */
-	private PFLinkBendpoint oldBendpoint;
+	private PageflowLinkBendpoint oldBendpoint;
 
 	public MoveBendpointCommand() {
 		// Pageflow.Commands.MoveBendpointCommand.Label = Move Bendpoint
@@ -46,11 +46,11 @@
 		PageflowPackage pageflowPackage = (PageflowPackage) registry
 				.get(pageflowURI);
 		PageflowFactory factory = pageflowPackage.getPageflowFactory();
-		PFLinkBendpoint _newBendpoint = factory.createPFLinkBendpoint();
+		PageflowLinkBendpoint _newBendpoint = factory.createPFLinkBendpoint();
 
 		_newBendpoint.setRelativeDimensions(getFirstRelativeDimension(),
 				getSecondRelativeDimension());
-		setOldBendpoint((PFLinkBendpoint) getPFLink().getBendPoints().get(
+		setOldBendpoint((PageflowLinkBendpoint) getPFLink().getBendPoints().get(
 				getIndex()));
 
 		getPFLink().setBendpoint(getIndex(), _newBendpoint);
@@ -62,7 +62,7 @@
 	 * 
 	 * @return - old bend point
 	 */
-	protected PFLinkBendpoint getOldBendpoint() {
+	protected PageflowLinkBendpoint getOldBendpoint() {
 		return oldBendpoint;
 	}
 
@@ -72,7 +72,7 @@
 	 * @param bp -
 	 *            old bend point
 	 */
-	public void setOldBendpoint(PFLinkBendpoint bp) {
+	public void setOldBendpoint(PageflowLinkBendpoint bp) {
 		oldBendpoint = bp;
 	}
 
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/command/OpenEditorCommand.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/command/OpenEditorCommand.java
index 784ad70..590c5e0 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/command/OpenEditorCommand.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/command/OpenEditorCommand.java
@@ -22,7 +22,7 @@
 import org.eclipse.jst.jsf.facesconfig.ui.EditorPlugin;
 import org.eclipse.jst.jsf.facesconfig.ui.EditorResources;
 import org.eclipse.jst.jsf.facesconfig.ui.FacesConfigEditor;
-import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFPage;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPage;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PageflowNodeImpl;
 import org.eclipse.jst.jsf.facesconfig.ui.util.WebrootUtil;
 import org.eclipse.swt.widgets.Display;
@@ -91,7 +91,7 @@
 	 */
 	private void executeOpenPFPage() {
 		IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
-		String pagePath = ((PFPage) (part.getModel())).getPath();
+		String pagePath = ((PageflowPage) (part.getModel())).getPath();
 
 		// Check the fileName is empty or not
 		if (pagePath != null && pagePath.length() > 0) {
@@ -169,7 +169,7 @@
 		} else
 		// otherwise, pop-up a error message box
 		{
-			String pagePath = ((PFPage) (part.getModel())).getPath();
+			String pagePath = ((PageflowPage) (part.getModel())).getPath();
 			// Pageflow.PageflowEditor.Alert.errorOpenEditor4JSFTitle = Open JSF
 			// File Error
 			// Pageflow.PageflowEditor.Alert.errorOpenEditor4JSFInfo = The JSF
@@ -217,7 +217,7 @@
 	 * Executes the OpenEditorCommand and opens the editor
 	 */
 	public void execute() {
-		if (part.getModel() instanceof PFPage) {
+		if (part.getModel() instanceof PageflowPage) {
 			executeOpenPFPage();
 		}
 
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/editpart/PageflowEditPart.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/editpart/PageflowEditPart.java
index 10013cc..297a63f 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/editpart/PageflowEditPart.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/editpart/PageflowEditPart.java
@@ -33,6 +33,7 @@
 import org.eclipse.gef.SnapToGrid;
 import org.eclipse.gef.SnapToGuides;
 import org.eclipse.gef.SnapToHelper;
+import org.eclipse.gef.editparts.AbstractEditPart;
 import org.eclipse.gef.editparts.GridLayer;
 import org.eclipse.gef.editpolicies.RootComponentEditPolicy;
 import org.eclipse.gef.editpolicies.SnapFeedbackPolicy;
@@ -184,6 +185,7 @@
 
 		case Notification.SET:
 			refreshVisuals();
+			refreshChildren();
 			break;
 		}
 
@@ -197,6 +199,9 @@
 	 */
 	protected void refreshVisuals() {
 		super.refreshVisuals();
+		for (int i = 0; i < this.getChildren().size(); i++) {
+			((AbstractEditPart) getChildren().get(i)).refresh();
+		}
 		ConnectionLayer cLayer = (ConnectionLayer) getLayer(CONNECTION_LAYER);
 
 		if (cLayer.getConnectionRouter() == null) {
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/editpart/PageflowEditPartsFactory.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/editpart/PageflowEditPartsFactory.java
index 5b7de6f..fe57235 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/editpart/PageflowEditPartsFactory.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/editpart/PageflowEditPartsFactory.java
@@ -14,7 +14,7 @@
 
 import org.eclipse.gef.EditPart;
 import org.eclipse.gef.EditPartFactory;
-import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.Pageflow;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowNode;
 
@@ -35,8 +35,8 @@
 			return new PageflowEditPart((Pageflow) obj);
 		} else if (obj instanceof PageflowNode) {
 			return new PageflowNodeEditPart((PageflowNode) obj);
-		} else if (obj instanceof PFLink) {
-			return new PFLinkEditPart((PFLink) obj);
+		} else if (obj instanceof PageflowLink) {
+			return new PageflowLinkEditPart((PageflowLink) obj);
 		}
 		return null;
 	}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/editpart/PageflowElementEditPart.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/editpart/PageflowElementEditPart.java
index c348081..0ec0b0d 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/editpart/PageflowElementEditPart.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/editpart/PageflowElementEditPart.java
@@ -30,7 +30,7 @@
 import org.eclipse.jst.jsf.facesconfig.ui.EditorPlugin;
 import org.eclipse.jst.jsf.facesconfig.ui.IconResources;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.figure.PageflowNodeFigure;
-import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFPage;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPage;
 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.PageflowPackage;
@@ -91,7 +91,7 @@
 		if (image == null) {
 			ImageDescriptor imageDescriptor = null;
 
-			if (element instanceof PFPage) {
+			if (element instanceof PageflowPage) {
 				imageDescriptor = IMG_PAGE;
 			} else {
 				imageDescriptor = IMG_NODE;
@@ -120,7 +120,7 @@
 	public static String getTypeName(PageflowElement element) {
 		if (element instanceof Pageflow) {
 			return "Pageflow"; //$NON-NLS-1$
-		} else if (element instanceof PFPage) {
+		} else if (element instanceof PageflowPage) {
 			return "Page"; //$NON-NLS-1$
 		}
 
@@ -278,9 +278,7 @@
 	 */
 	protected void hookIntoPageflowElement(PageflowElement element) {
 		if (null != element) {
-			if (!element.eAdapters().contains(FC2PFTransformer.getInstance())) {
-				element.eAdapters().add(FC2PFTransformer.getInstance());
-			}
+			FC2PFTransformer.getInstance().adapt(element);
 			if (!element.eAdapters().contains(this)) {
 				element.eAdapters().add(this);
 			}
@@ -297,7 +295,7 @@
 	protected void unhookFromPageflowElement(PageflowElement element) {
 		if (null != element) {
 			element.eAdapters().remove(this);
-			element.eAdapters().remove(FC2PFTransformer.getInstance());
+//			FC2PFTransformer.getInstance().unAdapt(element);
 		}
 	}
 
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/editpart/PageflowElementTreeEditPart.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/editpart/PageflowElementTreeEditPart.java
index 7bd6212..839ab84 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/editpart/PageflowElementTreeEditPart.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/editpart/PageflowElementTreeEditPart.java
@@ -19,7 +19,7 @@
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.jst.jsf.facesconfig.ui.EditorPlugin;
 import org.eclipse.jst.jsf.facesconfig.ui.IconResources;
-import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFPage;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPage;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowElement;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.properties.PageflowElementPropertySource;
 import org.eclipse.swt.graphics.Image;
@@ -65,7 +65,7 @@
 	public static Image getImage(PageflowElement element) {
 		ImageDescriptor imageDescriptor = null;
 
-		if (element instanceof PFPage) {
+		if (element instanceof PageflowPage) {
 			imageDescriptor = IMG_PAGE;
 		} else {
 			imageDescriptor = IMG_NODE;
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/editpart/PageflowLinkEditPart.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/editpart/PageflowLinkEditPart.java
new file mode 100644
index 0000000..b36eced
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/editpart/PageflowLinkEditPart.java
@@ -0,0 +1,525 @@
+/*******************************************************************************
+ * 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.PageflowLink;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLinkBendpoint;
+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 PageflowLinkEditPart 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 PageflowLinkEditPart(PageflowLink 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 PageflowLink getPFLink() {
+		return (PageflowLink) 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(PageflowLinkEditPart.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);
+		PageflowLink element = (PageflowLink) getModel();
+		if (!element.getFCElements().isEmpty()) {
+			NavigationCaseType navCase = ((NavigationCaseType) element
+					.getFCElements().getData().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);
+		// PageflowLink element = (PageflowLink) getModel();
+		// NavigationCaseType navCase = ((NavigationCaseType) element
+		// .getFCElements().getData().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++) {
+			PageflowLinkBendpoint wbp = (PageflowLinkBendpoint) 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 (((PageflowLink) getModel()).getOutcome() != null && ((PageflowLink) getModel())
+				.getOutcome().trim().length() > 0);
+	}
+
+	private boolean needDrawingAction() {
+		return (((PageflowLink) getModel()).getFromaction() != null && ((PageflowLink) 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:(" + ((PageflowLink) getModel()).getFromaction()
+					+ ") ";
+		} else if (((PFLinkFigure) getFigure()).getImage() != getImage(IMG_WARNING)) {
+			((PFLinkFigure) getFigure()).clearIcon();
+			tip = "";
+		}
+		if (needDrawingLabel()) {
+			((PFLinkFigure) getFigure()).setLabel(((PageflowLink) getModel())
+					.getOutcome());
+			tip += "fromOutcome:(";
+			tip += ((PageflowLink) 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/editpart/PageflowNodeEditPart.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/editpart/PageflowNodeEditPart.java
index 4b79fe7..dbdbac4 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/editpart/PageflowNodeEditPart.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/editpart/PageflowNodeEditPart.java
@@ -37,11 +37,11 @@
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.editpolicy.PageflowNodeEditPolicy;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.figure.ILabelDecorator;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.figure.PageflowNodeFigure;
-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.PageflowElement;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowNode;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPackage;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPage;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.util.PageflowAnnotationUtil;
 import org.eclipse.swt.graphics.Color;
 import org.eclipse.swt.graphics.Font;
@@ -164,13 +164,12 @@
 	 */
 	public void notifyChanged(Notification notification) {
 		int type = notification.getEventType();
-		int featureId = notification.getFeatureID(PageflowPackage.class);
 		// FC2PFTransformer.getInstance().NotifyChanged(notification,
 		// (PageflowElement) getModel());
 		switch (type) {
 		case Notification.ADD:
 		case Notification.ADD_MANY:
-			if (notification.getNewValue() instanceof PFLink) {
+			if (notification.getNewValue() instanceof PageflowLink) {
 				refreshTargetConnections();
 				refreshSourceConnections();
 				validate();
@@ -179,7 +178,7 @@
 
 		case Notification.REMOVE:
 		case Notification.REMOVE_MANY:
-			if (notification.getOldValue() instanceof PFLink) {
+			if (notification.getOldValue() instanceof PageflowLink) {
 				refreshTargetConnections();
 				refreshSourceConnections();
 				validate();
@@ -188,6 +187,7 @@
 			break;
 
 		case Notification.SET:
+			int featureId = notification.getFeatureID(PageflowPackage.class);
 			if (needValidation(featureId)) {
 				validate();
 			}
@@ -197,7 +197,7 @@
 	}
 
 	private boolean needValidation(int featureId) {
-		if (getModel() instanceof PFPage) {
+		if (getModel() instanceof PageflowPage) {
 			if (featureId == PageflowPackage.PF_PAGE__PATH) {
 				return true;
 			}
@@ -206,7 +206,7 @@
 	}
 
 	private void validate() {
-		if (getModel() instanceof PFPage) {
+		if (getModel() instanceof PageflowPage) {
 			PageflowAnnotationUtil.validatePage(this);
 		}
 	}
@@ -236,7 +236,7 @@
 	 */
 	public ConnectionAnchor getSourceConnectionAnchor(
 			ConnectionEditPart connection) {
-		PFLink link = (PFLink) connection.getModel();
+		PageflowLink link = (PageflowLink) connection.getModel();
 		return getPageflowNodeFigure().getSourceConnectionAnchorAt(
 				new Point(link.getSource().getX(), link.getSource().getY()));
 	}
@@ -258,7 +258,7 @@
 	 */
 	public ConnectionAnchor getTargetConnectionAnchor(
 			ConnectionEditPart connection) {
-		PFLink link = (PFLink) connection.getModel();
+		PageflowLink link = (PageflowLink) connection.getModel();
 		return getPageflowNodeFigure().getTargetConnectionAnchorAt(
 				new Point(link.getTarget().getX(), link.getTarget().getY()));
 	}
@@ -294,14 +294,14 @@
 
 		it = getPageflowNode().getInlinks().iterator();
 		while (it.hasNext()) {
-			PFLink link = (PFLink) it.next();
+			PageflowLink link = (PageflowLink) it.next();
 
 			hookIntoPageflowElement(link);
 		}
 
 		it = getPageflowNode().getOutlinks().iterator();
 		while (it.hasNext()) {
-			PFLink link = (PFLink) it.next();
+			PageflowLink link = (PageflowLink) it.next();
 
 			hookIntoPageflowElement(link);
 		}
@@ -317,14 +317,14 @@
 
 		it = getPageflowNode().getInlinks().iterator();
 		while (it.hasNext()) {
-			PFLink link = (PFLink) it.next();
+			PageflowLink link = (PageflowLink) it.next();
 
 			unhookFromPageflowElement(link);
 		}
 
 		it = getPageflowNode().getOutlinks().iterator();
 		while (it.hasNext()) {
-			PFLink link = (PFLink) it.next();
+			PageflowLink link = (PageflowLink) it.next();
 
 			unhookFromPageflowElement(link);
 		}
@@ -349,7 +349,7 @@
 	 */
 	protected void performOpen() {
 		// only Page and Action support the double-click commands
-		if (getModel() instanceof PFPage) {
+		if (getModel() instanceof PageflowPage) {
 			// CommandStack stack =
 			// getViewer().getEditDomain().getCommandStack();
 			Command command = new OpenEditorCommand(this);
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/editpolicy/PFLinkBendpointEditPolicy.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/editpolicy/PFLinkBendpointEditPolicy.java
index 31eca1d..718b7ac 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/editpolicy/PFLinkBendpointEditPolicy.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/editpolicy/PFLinkBendpointEditPolicy.java
@@ -20,7 +20,7 @@
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.command.CreateBendpointCommand;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.command.DeleteBendpointCommand;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.command.MoveBendpointCommand;
-import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink;
 
 public class PFLinkBendpointEditPolicy extends BendpointEditPolicy {
 
@@ -45,7 +45,7 @@
 
 		createCmd.setRelativeDimensions(p.getDifference(ref1), p
 				.getDifference(ref2));
-		createCmd.setPFLink((PFLink) request.getSource().getModel());
+		createCmd.setPFLink((PageflowLink) request.getSource().getModel());
 		createCmd.setIndex(request.getIndex());
 		return createCmd;
 	}
@@ -59,7 +59,7 @@
 		DeleteBendpointCommand deleteCom = new DeleteBendpointCommand();
 		Point p = request.getLocation();
 		deleteCom.setLocation(p);
-		deleteCom.setPFLink((PFLink) request.getSource().getModel());
+		deleteCom.setPFLink((PageflowLink) request.getSource().getModel());
 		deleteCom.setIndex(request.getIndex());
 		return deleteCom;
 	}
@@ -86,7 +86,7 @@
 
 		moveCmd.setRelativeDimensions(p.getDifference(ref1), p
 				.getDifference(ref2));
-		moveCmd.setPFLink((PFLink) request.getSource().getModel());
+		moveCmd.setPFLink((PageflowLink) request.getSource().getModel());
 		moveCmd.setIndex(request.getIndex());
 		return moveCmd;
 	}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/editpolicy/PFLinkEditPolicy.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/editpolicy/PFLinkEditPolicy.java
index 339bbf5..cc9c169 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/editpolicy/PFLinkEditPolicy.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/editpolicy/PFLinkEditPolicy.java
@@ -16,7 +16,7 @@
 import org.eclipse.gef.editpolicies.ConnectionEditPolicy;
 import org.eclipse.gef.requests.GroupRequest;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.command.ConnectionCommand;
-import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink;
 
 public class PFLinkEditPolicy extends ConnectionEditPolicy {
 
@@ -31,7 +31,7 @@
 	 */
 	protected Command getDeleteCommand(GroupRequest request) {
 		ConnectionCommand c = new ConnectionCommand();
-		c.setPFLink((PFLink) getHost().getModel());
+		c.setPFLink((PageflowLink) getHost().getModel());
 		return c;
 	}
 
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/editpolicy/PageflowNodeEditPolicy.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/editpolicy/PageflowNodeEditPolicy.java
index d6d1549..e4e3bd5 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/editpolicy/PageflowNodeEditPolicy.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/editpolicy/PageflowNodeEditPolicy.java
@@ -28,7 +28,7 @@
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.command.OpenEditorCommand;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.editpart.PageflowNodeEditPart;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.figure.PageflowNodeFigure;
-import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowNode;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PageflowNodeImpl;
 import org.eclipse.jst.jsf.facesconfig.ui.preference.GEMPreferences;
@@ -80,7 +80,7 @@
 	 */
 	protected Command getConnectionCreateCommand(CreateConnectionRequest request) {
 		ConnectionCommand command = new ConnectionCommand();
-		command.setPFLink((PFLink) request.getNewObject());
+		command.setPFLink((PageflowLink) request.getNewObject());
 		PageflowNode flowObject = getPageflowNode();
 		command.setSource(flowObject);
 		request.setStartCommand(command);
@@ -112,7 +112,7 @@
 	 */
 	protected Command getReconnectTargetCommand(ReconnectRequest request) {
 		ConnectionCommand cmd = new ConnectionCommand();
-		cmd.setPFLink((PFLink) request.getConnectionEditPart().getModel());
+		cmd.setPFLink((PageflowLink) request.getConnectionEditPart().getModel());
 		cmd.setTarget(getPageflowNode());
 		return cmd;
 	}
@@ -124,7 +124,7 @@
 	 */
 	protected Command getReconnectSourceCommand(ReconnectRequest request) {
 		ConnectionCommand cmd = new ConnectionCommand();
-		cmd.setPFLink((PFLink) request.getConnectionEditPart().getModel());
+		cmd.setPFLink((PageflowLink) request.getConnectionEditPart().getModel());
 		cmd.setSource(getPageflowNode());
 		return cmd;
 	}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/figure/PFLinkFigure.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/figure/PFLinkFigure.java
index 415a2b2..21339af 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/figure/PFLinkFigure.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/figure/PFLinkFigure.java
@@ -86,6 +86,7 @@
 				setForegroundColor(getForegroundColor());
 				add(textLabel, new MidpointLocator(this, 1));
 			}
+			// textLabel.setVisible(true);
 			textLabel.setText(strLabel);
 		}
 	}
@@ -293,8 +294,7 @@
 	 */
 	public Color getForegroundColor() {
 		IPreferenceStore store = EditorPlugin.getDefault().getPreferenceStore();
-		fgColor = GEMPreferences.getColor(store,
-				GEMPreferences.LINE_COLOR);
+		fgColor = GEMPreferences.getColor(store, GEMPreferences.LINE_COLOR);
 		return fgColor;
 	}
 
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/layout/PageflowLayoutManager.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/layout/PageflowLayoutManager.java
index 320afaf..89e438f 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/layout/PageflowLayoutManager.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/layout/PageflowLayoutManager.java
@@ -20,9 +20,9 @@
 import org.eclipse.draw2d.geometry.Insets;
 import org.eclipse.draw2d.geometry.Rectangle;
 import org.eclipse.emf.common.util.EList;
-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.PFPage;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLinkBendpoint;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPage;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.Pageflow;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowFactory;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowNode;
@@ -109,7 +109,7 @@
 
 		if (pageflow.getLinks() != null) {
 			for (Iterator iter = pageflow.getLinks().iterator(); iter.hasNext();) {
-				PFLink link = (PFLink) iter.next();
+				PageflowLink link = (PageflowLink) iter.next();
 
 				if (link.getSource() == link.getTarget()) {
 					iter.remove();
@@ -132,7 +132,7 @@
 				&& selfLoopLinks.size() > 0) {
 			EList links = pageflow.getLinks();
 			for (Iterator iter = selfLoopLinks.iterator(); iter.hasNext();) {
-				PFLink link = (PFLink) iter.next();
+				PageflowLink link = (PageflowLink) iter.next();
 				updateSelfLoopLink(link);
 				links.add(link);
 			}
@@ -146,14 +146,14 @@
 	 * 
 	 * @param selfLoopLink
 	 */
-	public static void updateSelfLoopLink(PFLink selfLoopLink) {
+	public static void updateSelfLoopLink(PageflowLink selfLoopLink) {
 		PageflowNode sourceNode = selfLoopLink.getSource();
 		Rectangle rectNode = getPageflowNodeBounds(sourceNode);
 
 		EList outLinks = sourceNode.getOutlinks();
 		if (outLinks != null && outLinks.size() > 0) {
 			for (Iterator iter = outLinks.iterator(); iter.hasNext();) {
-				PFLink anotherSelfLoopLink = (PFLink) iter.next();
+				PageflowLink anotherSelfLoopLink = (PageflowLink) iter.next();
 				if (anotherSelfLoopLink != selfLoopLink
 						&& anotherSelfLoopLink.getTarget() == sourceNode) {
 					rectNode = getFitnessRectangle(rectNode,
@@ -163,9 +163,9 @@
 		}
 
 		PageflowFactory factory = PageflowModelManager.getFactory();
-		PFLinkBendpoint bpTop = factory.createPFLinkBendpoint();
-		PFLinkBendpoint bpLeftTop = factory.createPFLinkBendpoint();
-		PFLinkBendpoint bpLeft = factory.createPFLinkBendpoint();
+		PageflowLinkBendpoint bpTop = factory.createPFLinkBendpoint();
+		PageflowLinkBendpoint bpLeftTop = factory.createPFLinkBendpoint();
+		PageflowLinkBendpoint bpLeft = factory.createPFLinkBendpoint();
 
 		bpTop.setD1Height(-rectNode.height);
 		bpTop.setD2Height(-rectNode.height);
@@ -191,12 +191,12 @@
 	 * @param anotherSelfLoopLink
 	 */
 	private static Rectangle getFitnessRectangle(Rectangle rectDefault,
-			PFLink anotherSelfLoopLink) {
+			PageflowLink anotherSelfLoopLink) {
 		EList bendPoints = anotherSelfLoopLink.getBendPoints();
 		if (bendPoints != null && bendPoints.size() > 0) {
 			for (Iterator iterBendPoint = bendPoints.iterator(); iterBendPoint
 					.hasNext();) {
-				PFLinkBendpoint bendPoint = (PFLinkBendpoint) iterBendPoint
+				PageflowLinkBendpoint bendPoint = (PageflowLinkBendpoint) iterBendPoint
 						.next();
 				if (bendPoint.getD1Width() == -rectDefault.width
 						&& bendPoint.getD1Height() == -rectDefault.height) {
@@ -282,7 +282,7 @@
 			// get all edges in the pageflow
 			List pfLinks = pageflow.getLinks();
 			for (Iterator iter = pfLinks.iterator(); iter.hasNext();) {
-				PFLink link = (PFLink) iter.next();
+				PageflowLink link = (PageflowLink) iter.next();
 				PageflowNode source = link.getSource();
 				PageflowNode target = link.getTarget();
 				Node sourceNode = (Node) nodesMap.get(source);
@@ -366,7 +366,7 @@
 		if (oldPageflow.getLinks().size() > 0) {
 			for (Iterator iter = newPageflow.getLinks().iterator(); iter
 					.hasNext();) {
-				PFLink newLink = (PFLink) iter.next();
+				PageflowLink newLink = (PageflowLink) iter.next();
 
 				updatePFLink(newLink, oldPageflow);
 			}
@@ -391,9 +391,9 @@
 		for (Iterator iter = oldPageflow.getNodes().iterator(); iter.hasNext();) {
 			PageflowNode oldNode = (PageflowNode) iter.next();
 
-			if (oldNode instanceof PFPage && newNode instanceof PFPage) {
-				if (((PFPage) oldNode).getPath().trim().equals(
-						((PFPage) newNode).getPath().trim())) {
+			if (oldNode instanceof PageflowPage && newNode instanceof PageflowPage) {
+				if (((PageflowPage) oldNode).getPath().trim().equals(
+						((PageflowPage) newNode).getPath().trim())) {
 					updatePageflowNode(newNode, oldNode);
 					return true;
 				}
@@ -459,9 +459,9 @@
 	 * @param newLink
 	 * @param oldPageflow
 	 */
-	private void updatePFLink(PFLink newLink, Pageflow oldPageflow) {
+	private void updatePFLink(PageflowLink newLink, Pageflow oldPageflow) {
 		for (Iterator iter = oldPageflow.getLinks().iterator(); iter.hasNext();) {
-			PFLink oldLink = (PFLink) iter.next();
+			PageflowLink oldLink = (PageflowLink) iter.next();
 
 			if (_copiedLinks.get(oldLink) != null) {
 				continue;
@@ -481,7 +481,7 @@
 	 * @param oldLink
 	 * @return
 	 */
-	private boolean isSameLink(PFLink newLink, PFLink oldLink) {
+	private boolean isSameLink(PageflowLink newLink, PageflowLink oldLink) {
 		PageflowNode newSource = newLink.getSource();
 		PageflowNode newTarget = newLink.getTarget();
 
@@ -489,12 +489,12 @@
 		PageflowNode oldTarget = oldLink.getTarget();
 
 		// Page-Page
-		if (newSource instanceof PFPage && oldSource instanceof PFPage
-				&& newTarget instanceof PFPage && oldTarget instanceof PFPage) {
-			if (((PFPage) newSource).getPath().trim().equalsIgnoreCase(
-					((PFPage) oldSource).getPath().trim())
-					&& ((PFPage) newTarget).getPath().trim().equalsIgnoreCase(
-							((PFPage) oldTarget).getPath().trim())) {
+		if (newSource instanceof PageflowPage && oldSource instanceof PageflowPage
+				&& newTarget instanceof PageflowPage && oldTarget instanceof PageflowPage) {
+			if (((PageflowPage) newSource).getPath().trim().equalsIgnoreCase(
+					((PageflowPage) oldSource).getPath().trim())
+					&& ((PageflowPage) newTarget).getPath().trim().equalsIgnoreCase(
+							((PageflowPage) oldTarget).getPath().trim())) {
 				if ((newLink.getOutcome() == null && oldLink.getOutcome() == null)
 						|| (newLink.getOutcome() != null
 								&& oldLink.getOutcome() != null && newLink
@@ -515,14 +515,14 @@
 	 * @param object
 	 * @return
 	 */
-	private PFLink updatePFLink(PFLink newLink, PFLink link) {
+	private PageflowLink updatePFLink(PageflowLink newLink, PageflowLink link) {
 		PageflowFactory factory = PageflowModelManager.getFactory();
 
 		newLink.getBendPoints().clear();
 
 		for (Iterator iter = link.getBendPoints().iterator(); iter.hasNext();) {
-			PFLinkBendpoint bendPoint = (PFLinkBendpoint) iter.next();
-			PFLinkBendpoint newBendPoint = factory.createPFLinkBendpoint();
+			PageflowLinkBendpoint bendPoint = (PageflowLinkBendpoint) iter.next();
+			PageflowLinkBendpoint newBendPoint = factory.createPFLinkBendpoint();
 			newBendPoint.setD1Height(bendPoint.getD1Height());
 			newBendPoint.setD1Width(bendPoint.getD1Width());
 			newBendPoint.setD2Height(bendPoint.getD2Height());
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/Pageflow.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/Pageflow.java
index bc8b58e..9f56b7c 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/Pageflow.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/Pageflow.java
@@ -55,8 +55,8 @@
 	/**
 	 * Returns the value of the '<em><b>Links</b></em>' containment
 	 * reference list. The list contents are of type
-	 * {@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink}. It
-	 * is bidirectional and its opposite is '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink#getPageflow <em>Pageflow</em>}'.
+	 * {@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink}. It
+	 * is bidirectional and its opposite is '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink#getPageflow <em>Pageflow</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <p>
 	 * If the meaning of the '<em>Links</em>' containment reference list
@@ -66,7 +66,7 @@
 	 * 
 	 * @return the value of the '<em>Links</em>' containment reference list.
 	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPackage#getPageflow_Links()
-	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink#getPageflow
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink#getPageflow
 	 * @model type="org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink"
 	 *        opposite="pageflow" containment="true"
 	 * @generated
@@ -105,7 +105,7 @@
 	 * 
 	 * @generated NOT
 	 */
-	public void connect(PageflowNode source, PageflowNode target, PFLink link);
+	public void connect(PageflowNode source, PageflowNode target, PageflowLink link);
 
 	/**
 	 * 
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/PageflowElement.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/PageflowElement.java
index 7674e85..e16f947 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/PageflowElement.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/PageflowElement.java
@@ -11,9 +11,9 @@
  *******************************************************************************/
 package org.eclipse.jst.jsf.facesconfig.ui.pageflow.model;
 
-import java.util.List;
-
+import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.synchronization.RefElement;
 
 /**
  * <!-- begin-user-doc --> A representation of the model object '<em><b>Element</b></em>'.
@@ -40,7 +40,7 @@
 	/**
 	 * @generated NOT
 	 */
-	public List getFCElements();
+	public RefElement getFCElements();
 
 	/**
 	 * Returns the value of the '<em><b>Name</b></em>' attribute. The
@@ -266,5 +266,7 @@
 	 * @generated
 	 */
 	void setReferenceLink(String value);
+
+	void notifyModelChanged(Notification nofitification);
 }
 // PageflowElement
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/PageflowFactory.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/PageflowFactory.java
index 048b408..3d52525 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/PageflowFactory.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/PageflowFactory.java
@@ -45,7 +45,7 @@
 	 * @return a new object of class '<em>PF Link</em>'.
 	 * @generated
 	 */
-	PFLink createPFLink();
+	PageflowLink createPFLink();
 
 	/**
 	 * Returns a new object of class '<em>PF Page</em>'. <!-- begin-user-doc
@@ -54,7 +54,7 @@
 	 * @return a new object of class '<em>PF Page</em>'.
 	 * @generated
 	 */
-	PFPage createPFPage();
+	PageflowPage createPFPage();
 
 	/**
 	 * Returns a new object of class '<em>PF Link Bendpoint</em>'. <!--
@@ -63,7 +63,7 @@
 	 * @return a new object of class '<em>PF Link Bendpoint</em>'.
 	 * @generated
 	 */
-	PFLinkBendpoint createPFLinkBendpoint();
+	PageflowLinkBendpoint createPFLinkBendpoint();
 
 	/**
 	 * Returns the package supported by this factory. <!-- begin-user-doc -->
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/PageflowLink.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/PageflowLink.java
new file mode 100644
index 0000000..ca3b3f5
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/PageflowLink.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.PageflowLink#getPageflow <em>Pageflow</em>}</li>
+ *   <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink#getTarget <em>Target</em>}</li>
+ *   <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink#getSource <em>Source</em>}</li>
+ *   <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink#getSmallicon <em>Smallicon</em>}</li>
+ *   <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink#getLargeicon <em>Largeicon</em>}</li>
+ *   <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink#getFromaction <em>Fromaction</em>}</li>
+ *   <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink#getOutcome <em>Outcome</em>}</li>
+ *   <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink#isRedirect <em>Redirect</em>}</li>
+ *   <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink#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 PageflowLink 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.PageflowLink#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.PageflowLink#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.PageflowLink#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.PageflowLink#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.PageflowLink#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.PageflowLink#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.PageflowLink#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.PageflowLink#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.PageflowLinkBendpoint}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLinkBendpoint#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.PageflowLinkBendpoint#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, PageflowLinkBendpoint 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, PageflowLinkBendpoint 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/PageflowLinkBendpoint.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/PageflowLinkBendpoint.java
new file mode 100644
index 0000000..a0bb298
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/PageflowLinkBendpoint.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.PageflowLinkBendpoint#getD1Width <em>D1 Width</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLinkBendpoint#getD1Height <em>D1 Height</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLinkBendpoint#getD2Width <em>D2 Width</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLinkBendpoint#getD2Height <em>D2 Height</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLinkBendpoint#getWeight <em>Weight</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLinkBendpoint#getLink <em>Link</em>}</li>
+ * </ul>
+ * </p>
+ * 
+ * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPackage#getPFLinkBendpoint()
+ * @model
+ * @generated
+ */
+public interface PageflowLinkBendpoint 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.PageflowLinkBendpoint#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.PageflowLinkBendpoint#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.PageflowLinkBendpoint#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.PageflowLinkBendpoint#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.PageflowLinkBendpoint#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.PageflowLink#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(PageflowLink)
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPackage#getPFLinkBendpoint_Link()
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink#getBendPoints
+	 * @model opposite="bendPoints" required="true"
+	 * @generated
+	 */
+	PageflowLink getLink();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLinkBendpoint#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(PageflowLink 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/PageflowNode.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/PageflowNode.java
index 7936df1..fe50af4 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/PageflowNode.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/PageflowNode.java
@@ -65,8 +65,8 @@
 	/**
 	 * Returns the value of the '<em><b>Outlinks</b></em>' reference list.
 	 * The list contents are of type
-	 * {@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink}. It
-	 * is bidirectional and its opposite is '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink#getSource <em>Source</em>}'.
+	 * {@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink}. It
+	 * is bidirectional and its opposite is '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink#getSource <em>Source</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <p>
 	 * If the meaning of the '<em>Outlinks</em>' reference list isn't clear,
@@ -76,7 +76,7 @@
 	 * 
 	 * @return the value of the '<em>Outlinks</em>' reference list.
 	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPackage#getPageflowNode_Outlinks()
-	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink#getSource
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink#getSource
 	 * @model type="org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink"
 	 *        opposite="source"
 	 * @generated
@@ -86,8 +86,8 @@
 	/**
 	 * Returns the value of the '<em><b>Inlinks</b></em>' reference list.
 	 * The list contents are of type
-	 * {@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink}. It
-	 * is bidirectional and its opposite is '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink#getTarget <em>Target</em>}'.
+	 * {@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink}. It
+	 * is bidirectional and its opposite is '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink#getTarget <em>Target</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <p>
 	 * If the meaning of the '<em>Inlinks</em>' reference list isn't clear,
@@ -97,7 +97,7 @@
 	 * 
 	 * @return the value of the '<em>Inlinks</em>' reference list.
 	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPackage#getPageflowNode_Inlinks()
-	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink#getTarget
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink#getTarget
 	 * @model type="org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink"
 	 *        opposite="target"
 	 * @generated
@@ -107,7 +107,7 @@
 	/**
 	 * @generated NOT
 	 */
-	PFLink findLinkTo(PageflowNode target);
+	PageflowLink findLinkTo(PageflowNode target);
 
 }
 // PageflowNode
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/PageflowPackage.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/PageflowPackage.java
index 2d2e759..47c72b0 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/PageflowPackage.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/PageflowPackage.java
@@ -389,10 +389,10 @@
 	int PAGEFLOW_NODE_FEATURE_COUNT = PAGEFLOW_ELEMENT_FEATURE_COUNT + 3;
 
 	/**
-	 * The meta object id for the '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PFLinkImpl <em>PF Link</em>}'
+	 * The meta object id for the '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PageflowLinkImpl <em>PF Link</em>}'
 	 * class. <!-- begin-user-doc --> <!-- end-user-doc -->
 	 * 
-	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PFLinkImpl
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PageflowLinkImpl
 	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PageflowPackageImpl#getPFLink()
 	 * @generated
 	 */
@@ -561,10 +561,10 @@
 	int PF_LINK_FEATURE_COUNT = PAGEFLOW_ELEMENT_FEATURE_COUNT + 9;
 
 	/**
-	 * The meta object id for the '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PFPageImpl <em>PF Page</em>}'
+	 * The meta object id for the '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PageflowPageImpl <em>PF Page</em>}'
 	 * class. <!-- begin-user-doc --> <!-- end-user-doc -->
 	 * 
-	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PFPageImpl
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PageflowPageImpl
 	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PageflowPackageImpl#getPFPage()
 	 * @generated
 	 */
@@ -697,10 +697,10 @@
 	int PF_PAGE_FEATURE_COUNT = PAGEFLOW_NODE_FEATURE_COUNT + 3;
 
 	/**
-	 * The meta object id for the '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PFLinkBendpointImpl <em>PF Link Bendpoint</em>}'
+	 * The meta object id for the '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PageflowLinkBendpointImpl <em>PF Link Bendpoint</em>}'
 	 * class. <!-- begin-user-doc --> <!-- end-user-doc -->
 	 * 
-	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PFLinkBendpointImpl
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PageflowLinkBendpointImpl
 	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PageflowPackageImpl#getPFLinkBendpoint()
 	 * @generated
 	 */
@@ -856,76 +856,76 @@
 	EReference getPageflowNode_Inlinks();
 
 	/**
-	 * Returns the meta object for class '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink <em>PF Link</em>}'.
+	 * Returns the meta object for class '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink <em>PF Link</em>}'.
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
 	 * 
 	 * @return the meta object for class '<em>PF Link</em>'.
-	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink
 	 * @generated
 	 */
 	EClass getPFLink();
 
 	/**
-	 * Returns the meta object for the container reference '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink#getPageflow <em>Pageflow</em>}'.
+	 * Returns the meta object for the container reference '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink#getPageflow <em>Pageflow</em>}'.
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
 	 * 
 	 * @return the meta object for the container reference '<em>Pageflow</em>'.
-	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink#getPageflow()
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink#getPageflow()
 	 * @see #getPFLink()
 	 * @generated
 	 */
 	EReference getPFLink_Pageflow();
 
 	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink#getTarget <em>Target</em>}'.
+	 * Returns the meta object for the reference '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink#getTarget <em>Target</em>}'.
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
 	 * 
 	 * @return the meta object for the reference '<em>Target</em>'.
-	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink#getTarget()
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink#getTarget()
 	 * @see #getPFLink()
 	 * @generated
 	 */
 	EReference getPFLink_Target();
 
 	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink#getSource <em>Source</em>}'.
+	 * Returns the meta object for the reference '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink#getSource <em>Source</em>}'.
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
 	 * 
 	 * @return the meta object for the reference '<em>Source</em>'.
-	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink#getSource()
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink#getSource()
 	 * @see #getPFLink()
 	 * @generated
 	 */
 	EReference getPFLink_Source();
 
 	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink#getOutcome <em>Outcome</em>}'.
+	 * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink#getOutcome <em>Outcome</em>}'.
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
 	 * 
 	 * @return the meta object for the attribute '<em>Outcome</em>'.
-	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink#getOutcome()
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink#getOutcome()
 	 * @see #getPFLink()
 	 * @generated
 	 */
 	EAttribute getPFLink_Outcome();
 
 	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink#isRedirect <em>Redirect</em>}'.
+	 * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink#isRedirect <em>Redirect</em>}'.
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
 	 * 
 	 * @return the meta object for the attribute '<em>Redirect</em>'.
-	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink#isRedirect()
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink#isRedirect()
 	 * @see #getPFLink()
 	 * @generated
 	 */
 	EAttribute getPFLink_Redirect();
 
 	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink#getBendPoints <em>Bend Points</em>}'.
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink#getBendPoints <em>Bend Points</em>}'.
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
 	 * 
 	 * @return the meta object for the containment reference list '<em>Bend Points</em>'.
-	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink#getBendPoints()
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink#getBendPoints()
 	 * @see #getPFLink()
 	 * @generated
 	 */
@@ -1019,119 +1019,119 @@
 	EAttribute getPageflowElement_Id();
 
 	/**
-	 * Returns the meta object for class '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFPage <em>PF Page</em>}'.
+	 * Returns the meta object for class '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPage <em>PF Page</em>}'.
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
 	 * 
 	 * @return the meta object for class '<em>PF Page</em>'.
-	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFPage
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPage
 	 * @generated
 	 */
 	EClass getPFPage();
 
 	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFPage#getPath <em>Path</em>}'.
+	 * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPage#getPath <em>Path</em>}'.
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
 	 * 
 	 * @return the meta object for the attribute '<em>Path</em>'.
-	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFPage#getPath()
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPage#getPath()
 	 * @see #getPFPage()
 	 * @generated
 	 */
 	EAttribute getPFPage_Path();
 
 	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFPage#getSmallicon <em>Smallicon</em>}'.
+	 * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPage#getSmallicon <em>Smallicon</em>}'.
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
 	 * 
 	 * @return the meta object for the attribute '<em>Smallicon</em>'.
-	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFPage#getSmallicon()
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPage#getSmallicon()
 	 * @see #getPFPage()
 	 * @generated
 	 */
 	EAttribute getPFPage_Smallicon();
 
 	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFPage#getLargeicon <em>Largeicon</em>}'.
+	 * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPage#getLargeicon <em>Largeicon</em>}'.
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
 	 * 
 	 * @return the meta object for the attribute '<em>Largeicon</em>'.
-	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFPage#getLargeicon()
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPage#getLargeicon()
 	 * @see #getPFPage()
 	 * @generated
 	 */
 	EAttribute getPFPage_Largeicon();
 
 	/**
-	 * Returns the meta object for class '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLinkBendpoint <em>PF Link Bendpoint</em>}'.
+	 * Returns the meta object for class '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLinkBendpoint <em>PF Link Bendpoint</em>}'.
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
 	 * 
 	 * @return the meta object for class '<em>PF Link Bendpoint</em>'.
-	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLinkBendpoint
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLinkBendpoint
 	 * @generated
 	 */
 	EClass getPFLinkBendpoint();
 
 	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLinkBendpoint#getD1Width <em>D1 Width</em>}'.
+	 * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLinkBendpoint#getD1Width <em>D1 Width</em>}'.
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
 	 * 
 	 * @return the meta object for the attribute '<em>D1 Width</em>'.
-	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLinkBendpoint#getD1Width()
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLinkBendpoint#getD1Width()
 	 * @see #getPFLinkBendpoint()
 	 * @generated
 	 */
 	EAttribute getPFLinkBendpoint_D1Width();
 
 	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLinkBendpoint#getD1Height <em>D1 Height</em>}'.
+	 * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLinkBendpoint#getD1Height <em>D1 Height</em>}'.
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
 	 * 
 	 * @return the meta object for the attribute '<em>D1 Height</em>'.
-	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLinkBendpoint#getD1Height()
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLinkBendpoint#getD1Height()
 	 * @see #getPFLinkBendpoint()
 	 * @generated
 	 */
 	EAttribute getPFLinkBendpoint_D1Height();
 
 	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLinkBendpoint#getD2Width <em>D2 Width</em>}'.
+	 * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLinkBendpoint#getD2Width <em>D2 Width</em>}'.
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
 	 * 
 	 * @return the meta object for the attribute '<em>D2 Width</em>'.
-	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLinkBendpoint#getD2Width()
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLinkBendpoint#getD2Width()
 	 * @see #getPFLinkBendpoint()
 	 * @generated
 	 */
 	EAttribute getPFLinkBendpoint_D2Width();
 
 	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLinkBendpoint#getD2Height <em>D2 Height</em>}'.
+	 * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLinkBendpoint#getD2Height <em>D2 Height</em>}'.
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
 	 * 
 	 * @return the meta object for the attribute '<em>D2 Height</em>'.
-	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLinkBendpoint#getD2Height()
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLinkBendpoint#getD2Height()
 	 * @see #getPFLinkBendpoint()
 	 * @generated
 	 */
 	EAttribute getPFLinkBendpoint_D2Height();
 
 	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLinkBendpoint#getWeight <em>Weight</em>}'.
+	 * Returns the meta object for the attribute '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLinkBendpoint#getWeight <em>Weight</em>}'.
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
 	 * 
 	 * @return the meta object for the attribute '<em>Weight</em>'.
-	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLinkBendpoint#getWeight()
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLinkBendpoint#getWeight()
 	 * @see #getPFLinkBendpoint()
 	 * @generated
 	 */
 	EAttribute getPFLinkBendpoint_Weight();
 
 	/**
-	 * Returns the meta object for the container reference '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLinkBendpoint#getLink <em>Link</em>}'.
+	 * Returns the meta object for the container reference '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLinkBendpoint#getLink <em>Link</em>}'.
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
 	 * 
 	 * @return the meta object for the container reference '<em>Link</em>'.
-	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLinkBendpoint#getLink()
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLinkBendpoint#getLink()
 	 * @see #getPFLinkBendpoint()
 	 * @generated
 	 */
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/PageflowPage.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/PageflowPage.java
new file mode 100644
index 0000000..b6cecb5
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/PageflowPage.java
@@ -0,0 +1,117 @@
+/*******************************************************************************
+ * 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.PageflowPage#getPath <em>Path</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPage#getSmallicon <em>Smallicon</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPage#getLargeicon <em>Largeicon</em>}</li>
+ * </ul>
+ * </p>
+ * 
+ * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPackage#getPFPage()
+ * @model
+ * @generated
+ */
+public interface PageflowPage 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();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPage#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.PageflowPage#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.PageflowPage#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/PageflowElementImpl.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/impl/PageflowElementImpl.java
index fd7949d..a777a92 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/impl/PageflowElementImpl.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/impl/PageflowElementImpl.java
@@ -11,9 +11,6 @@
  *******************************************************************************/
 package org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl;
 
-import java.util.ArrayList;
-import java.util.List;
-
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EStructuralFeature;
@@ -21,6 +18,7 @@
 import org.eclipse.emf.ecore.impl.EObjectImpl;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowElement;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPackage;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.synchronization.RefElement;
 
 /**
  * <!-- begin-user-doc --> An implementation of the model object '<em><b>Element</b></em>'.
@@ -48,6 +46,8 @@
 
 	protected static int counter = 0;
 
+	private RefElement refElement;
+
 	/**
 	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
@@ -222,7 +222,7 @@
 	 * @generated
 	 */
 	public String getName() {
-		return name;
+		return name == null || name.length() == 0 ? NAME_EDEFAULT : name;
 	}
 
 	/**
@@ -566,11 +566,21 @@
 		return result.toString();
 	}
 
-	private List fcElements = new ArrayList();
-
-	public List getFCElements() {
-		// TODO Auto-generated method stub
-		return fcElements;
+	/**
+	 * The synchronizer will use this to notify adapters for the faces-config's
+	 * modification.
+	 */
+	public void notifyModelChanged(Notification notification) {
+		if (eNotificationRequired())
+			eNotify(notification);
 	}
+
+	public RefElement getFCElements() {
+		if (refElement == null) {
+			refElement = new RefElement(this);
+		}
+		return refElement;
+	}
+
 }
 // PageflowElementImpl
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/impl/PageflowFactoryImpl.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/impl/PageflowFactoryImpl.java
index e3bf2ab..5dcc2ee 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/impl/PageflowFactoryImpl.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/impl/PageflowFactoryImpl.java
@@ -14,9 +14,9 @@
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.impl.EFactoryImpl;
-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.PFPage;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLinkBendpoint;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPage;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.Pageflow;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowFactory;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPackage;
@@ -75,8 +75,8 @@
 	 * 
 	 * @generated
 	 */
-	public PFLink createPFLink() {
-		PFLinkImpl pfLink = new PFLinkImpl();
+	public PageflowLink createPFLink() {
+		PageflowLinkImpl pfLink = new PageflowLinkImpl();
 		return pfLink;
 	}
 
@@ -85,8 +85,8 @@
 	 * 
 	 * @generated
 	 */
-	public PFPage createPFPage() {
-		PFPageImpl pfPage = new PFPageImpl();
+	public PageflowPage createPFPage() {
+		PageflowPageImpl pfPage = new PageflowPageImpl();
 		return pfPage;
 	}
 
@@ -95,8 +95,8 @@
 	 * 
 	 * @generated
 	 */
-	public PFLinkBendpoint createPFLinkBendpoint() {
-		PFLinkBendpointImpl pfLinkBendpoint = new PFLinkBendpointImpl();
+	public PageflowLinkBendpoint createPFLinkBendpoint() {
+		PageflowLinkBendpointImpl pfLinkBendpoint = new PageflowLinkBendpointImpl();
 		return pfLinkBendpoint;
 	}
 
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/impl/PageflowImpl.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/impl/PageflowImpl.java
index c4175a8..06cc49f 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/impl/PageflowImpl.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/impl/PageflowImpl.java
@@ -18,14 +18,16 @@
 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.common.util.TreeIterator;
 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.InternalEList;
-import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink;
 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.PageflowLink;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowNode;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPackage;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.util.PageflowValidation;
@@ -127,8 +129,8 @@
 	 */
 	public EList getLinks() {
 		if (links == null) {
-			links = new EObjectContainmentWithInverseEList(PFLink.class, this,
-					PageflowPackage.PAGEFLOW__LINKS,
+			links = new EObjectContainmentWithInverseEList(PageflowLink.class,
+					this, PageflowPackage.PAGEFLOW__LINKS,
 					PageflowPackage.PF_LINK__PAGEFLOW);
 		}
 		return links;
@@ -229,7 +231,7 @@
 			return getConfigfile();
 		}
 		return super.eGet(eFeature, resolve);// eDynamicGet(eFeature,
-												// resolve);
+		// resolve);
 	}
 
 	/**
@@ -372,7 +374,8 @@
 	 * 
 	 * @generated NOT
 	 */
-	public void connect(PageflowNode source, PageflowNode target, PFLink link) {
+	public void connect(PageflowNode source, PageflowNode target,
+			PageflowLink link) {
 		if (link != null) {
 			if (PageflowValidation.getInstance().isValidLinkForCreation(source,
 					target)) {
@@ -400,7 +403,7 @@
 	private HashMap getNodePrefixMap() {
 		if (mapNodePrefix == null) {
 			mapNodePrefix = new HashMap();
-			mapNodePrefix.put(PFPageImpl.class, new String("Page"));
+			mapNodePrefix.put(PageflowPageImpl.class, new String("Page"));
 		}
 		return mapNodePrefix;
 	}
@@ -449,5 +452,18 @@
 	public void setSSEModel(IDOMModel model) {
 		_sseModel = model;
 	}
+
+	public void notifyModelChanged(Notification notification) {
+		TreeIterator children = eAllContents();
+		while (children.hasNext()) {
+			Object next = children.next();
+			if (next instanceof PageflowElement) {
+				((PageflowElement) next).getFCElements().update();
+			}
+		}
+		getFCElements().update();
+		super.notifyModelChanged(notification);
+	}
+
 }
 // PageflowImpl
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/impl/PageflowLinkBendpointImpl.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/impl/PageflowLinkBendpointImpl.java
new file mode 100644
index 0000000..c352874
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/impl/PageflowLinkBendpointImpl.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.PageflowLink;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLinkBendpoint;
+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.PageflowLinkBendpointImpl#getD1Width <em>D1 Width</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PageflowLinkBendpointImpl#getD1Height <em>D1 Height</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PageflowLinkBendpointImpl#getD2Width <em>D2 Width</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PageflowLinkBendpointImpl#getD2Height <em>D2 Height</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PageflowLinkBendpointImpl#getWeight <em>Weight</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PageflowLinkBendpointImpl#getLink <em>Link</em>}</li>
+ * </ul>
+ * </p>
+ * 
+ * @generated
+ */
+public class PageflowLinkBendpointImpl extends EObjectImpl implements PageflowLinkBendpoint {
+	/**
+	 * 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 PageflowLinkBendpointImpl() {
+		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 PageflowLink getLink() {
+		if (eContainerFeatureID != PageflowPackage.PF_LINK_BENDPOINT__LINK)
+			return null;
+		return (PageflowLink) eContainer;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void setLink(PageflowLink 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, PageflowLink.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, PageflowLink.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((PageflowLink) 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((PageflowLink) 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/PageflowLinkImpl.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/impl/PageflowLinkImpl.java
new file mode 100644
index 0000000..9663ef7
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/impl/PageflowLinkImpl.java
@@ -0,0 +1,1000 @@
+/*******************************************************************************
+ * 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.Pageflow;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLinkBendpoint;
+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.PageflowLinkImpl#getPageflow <em>Pageflow</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PageflowLinkImpl#getTarget <em>Target</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PageflowLinkImpl#getSource <em>Source</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PageflowLinkImpl#getOutcome <em>Outcome</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PageflowLinkImpl#isRedirect <em>Redirect</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PageflowLinkImpl#getBendPoints <em>Bend Points</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PageflowLinkImpl#getSmallicon <em>Smallicon</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PageflowLinkImpl#getLargeicon <em>Largeicon</em>}</li>
+ * </ul>
+ * </p>
+ * 
+ * @generated
+ * 
+ */
+public class PageflowLinkImpl extends PageflowElementImpl implements
+		PageflowLink {
+	/**
+	 * 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 PageflowLinkImpl() {
+		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(
+					PageflowLinkBendpoint.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, PageflowLinkBendpoint 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, PageflowLinkBendpoint 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().isEmpty()) {
+			RedirectType outcome = ((NavigationCaseType) getFCElements()
+					.getData().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().isEmpty()) {
+			oldRedirect = ((NavigationCaseType) getFCElements().getData()
+					.get(0)).getRedirect();
+			if (!newRedirect) {
+				redirect = null;
+			} else {
+				if (oldRedirect == null) {
+					redirect = FacesConfigFactory.eINSTANCE
+							.createRedirectType();
+				}
+			}
+			((NavigationCaseType) getFCElements().getData().get(0))
+					.setRedirect(redirect);
+		}
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					PageflowPackage.PF_LINK__REDIRECT, oldRedirect, redirect));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public String getOutcome() {
+		String result = null;
+		if (!getFCElements().isEmpty()) {
+			FromOutcomeType outcome = ((NavigationCaseType) getFCElements()
+					.getData().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;
+		FromOutcomeType newOutcome = null;
+		if (!getFCElements().isEmpty()) {
+			oldOutcome = ((NavigationCaseType) getFCElements().getData().get(0))
+					.getFromOutcome();
+			if (newValue == null || newValue.length() == 0) {
+				((NavigationCaseType) getFCElements().getData().get(0))
+						.setFromOutcome(null);
+			} else {
+				if (oldOutcome == null) {
+					newOutcome = FacesConfigFactory.eINSTANCE
+							.createFromOutcomeType();
+					newOutcome.setTextContent(newValue);
+					((NavigationCaseType) getFCElements().getData().get(0))
+							.setFromOutcome(newOutcome);
+				} else {
+					oldOutcome.setTextContent(newValue);
+				}
+			}
+		}
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					PageflowPackage.PF_LINK__OUTCOME, oldOutcome, newOutcome));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public String getSmallicon() {
+		SmallIconType result = null;
+		if (!getFCElements().isEmpty()) {
+			List icons = ((NavigationCaseType) getFCElements().getData().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().isEmpty()) {
+			List icons = ((NavigationCaseType) getFCElements().getData().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,
+					newSmallIconType));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public String getLargeicon() {
+		LargeIconType result = null;
+		if (!getFCElements().isEmpty()) {
+			List icons = ((NavigationCaseType) getFCElements().getData().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().isEmpty()) {
+			List icons = ((NavigationCaseType) getFCElements().getData().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,
+					newLargeIconType));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public String getFromaction() {
+		String result = null;
+		if (!getFCElements().isEmpty()) {
+			FromActionType fromActionType = ((NavigationCaseType) getFCElements()
+					.getData().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;
+		FromActionType newFromActionType = null;
+		if (!getFCElements().isEmpty()) {
+			oldFromActionType = ((NavigationCaseType) getFCElements().getData()
+					.get(0)).getFromAction();
+			if (newFromaction == null || newFromaction.length() == 0) {
+				((NavigationCaseType) getFCElements().getData().get(0))
+						.setFromAction(null);
+			} else {
+				if (oldFromActionType == null) {
+					newFromActionType = FacesConfigFactory.eINSTANCE
+							.createFromActionType();
+					newFromActionType.setTextContent(newFromaction);
+					((NavigationCaseType) getFCElements().getData().get(0))
+							.setFromAction(newFromActionType);
+				} else {
+					oldFromActionType.setTextContent(newFromaction);
+				}
+			}
+		}
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					PageflowPackage.PF_LINK__FROMACTION, oldFromActionType,
+					newFromActionType));
+	}
+
+}
+// PFLinkImpl
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/impl/PageflowNodeImpl.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/impl/PageflowNodeImpl.java
index 7943f75..c90624e 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/impl/PageflowNodeImpl.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/impl/PageflowNodeImpl.java
@@ -23,7 +23,7 @@
 import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
 import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.eclipse.emf.ecore.util.InternalEList;
-import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink;
 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;
@@ -127,7 +127,7 @@
 	 */
 	public EList getOutlinks() {
 		if (outlinks == null) {
-			outlinks = new EObjectWithInverseResolvingEList(PFLink.class, this,
+			outlinks = new EObjectWithInverseResolvingEList(PageflowLink.class, this,
 					PageflowPackage.PAGEFLOW_NODE__OUTLINKS,
 					PageflowPackage.PF_LINK__SOURCE);
 		}
@@ -141,7 +141,7 @@
 	 */
 	public EList getInlinks() {
 		if (inlinks == null) {
-			inlinks = new EObjectWithInverseResolvingEList(PFLink.class, this,
+			inlinks = new EObjectWithInverseResolvingEList(PageflowLink.class, this,
 					PageflowPackage.PAGEFLOW_NODE__INLINKS,
 					PageflowPackage.PF_LINK__TARGET);
 		}
@@ -151,11 +151,11 @@
 	/**
 	 * @generated NOT
 	 */
-	public PFLink findLinkTo(PageflowNode target) {
+	public PageflowLink findLinkTo(PageflowNode target) {
 		//
 		java.util.Iterator i = this.getOutlinks().iterator();
 		while (i.hasNext()) {
-			PFLink link = (PFLink) i.next();
+			PageflowLink link = (PageflowLink) i.next();
 			if (link.getTarget() == target)
 				return link;
 		}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/impl/PageflowPackageImpl.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/impl/PageflowPackageImpl.java
index aa8c300..c585d3c 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/impl/PageflowPackageImpl.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/impl/PageflowPackageImpl.java
@@ -16,9 +16,9 @@
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.EReference;
 import org.eclipse.emf.ecore.impl.EPackageImpl;
-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.PFPage;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLinkBendpoint;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPage;
 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.PageflowFactory;
@@ -641,46 +641,46 @@
 				!IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE,
 				!IS_DERIVED, IS_ORDERED);
 
-		initEClass(pfLinkEClass, PFLink.class, "PFLink", !IS_ABSTRACT,
+		initEClass(pfLinkEClass, PageflowLink.class, "PFLink", !IS_ABSTRACT,
 				!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getPFLink_Pageflow(), this.getPageflow(), this
-				.getPageflow_Links(), "pageflow", null, 1, 1, PFLink.class,
+				.getPageflow_Links(), "pageflow", null, 1, 1, PageflowLink.class,
 				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
 				!IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
 				IS_ORDERED);
 		initEReference(getPFLink_Target(), this.getPageflowNode(), this
-				.getPageflowNode_Inlinks(), "target", null, 1, 1, PFLink.class,
+				.getPageflowNode_Inlinks(), "target", null, 1, 1, PageflowLink.class,
 				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
 				IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
 				IS_ORDERED);
 		initEReference(getPFLink_Source(), this.getPageflowNode(), this
 				.getPageflowNode_Outlinks(), "source", null, 1, 1,
-				PFLink.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+				PageflowLink.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
 				!IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE,
 				!IS_DERIVED, IS_ORDERED);
 		initEAttribute(getPFLink_Outcome(), ecorePackage.getEString(),
-				"outcome", null, 0, 1, PFLink.class, !IS_TRANSIENT,
+				"outcome", null, 0, 1, PageflowLink.class, !IS_TRANSIENT,
 				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
 				!IS_DERIVED, IS_ORDERED);
 		initEAttribute(getPFLink_Redirect(), ecorePackage.getEBoolean(),
-				"redirect", null, 0, 1, PFLink.class, !IS_TRANSIENT,
+				"redirect", null, 0, 1, PageflowLink.class, !IS_TRANSIENT,
 				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
 				!IS_DERIVED, IS_ORDERED);
 		initEReference(getPFLink_BendPoints(), this.getPFLinkBendpoint(), this
 				.getPFLinkBendpoint_Link(), "bendPoints", null, 0, -1,
-				PFLink.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+				PageflowLink.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
 				IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE,
 				!IS_DERIVED, IS_ORDERED);
 		initEAttribute(getPFLink_Smallicon(), ecorePackage.getEString(),
-				"smallicon", null, 0, 1, PFLink.class, !IS_TRANSIENT,
+				"smallicon", null, 0, 1, PageflowLink.class, !IS_TRANSIENT,
 				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
 				!IS_DERIVED, IS_ORDERED);
 		initEAttribute(getPFLink_Largeicon(), ecorePackage.getEString(),
-				"largeicon", null, 0, 1, PFLink.class, !IS_TRANSIENT,
+				"largeicon", null, 0, 1, PageflowLink.class, !IS_TRANSIENT,
 				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
 				!IS_DERIVED, IS_ORDERED);
 		initEAttribute(getPFLink_Fromaction(), ecorePackage.getEString(),
-				"fromaction", null, 0, 1, PFLink.class, !IS_TRANSIENT,
+				"fromaction", null, 0, 1, PageflowLink.class, !IS_TRANSIENT,
 				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
 				!IS_DERIVED, IS_ORDERED);
 
@@ -721,47 +721,47 @@
 				IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
 				IS_ORDERED);
 
-		initEClass(pfPageEClass, PFPage.class, "PFPage", !IS_ABSTRACT,
+		initEClass(pfPageEClass, PageflowPage.class, "PFPage", !IS_ABSTRACT,
 				!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getPFPage_Path(), ecorePackage.getEString(), "path",
-				null, 0, 1, PFPage.class, !IS_TRANSIENT, !IS_VOLATILE,
+				null, 0, 1, PageflowPage.class, !IS_TRANSIENT, !IS_VOLATILE,
 				IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
 				IS_ORDERED);
 		initEAttribute(getPFPage_Smallicon(), ecorePackage.getEString(),
-				"smallicon", null, 0, 1, PFPage.class, !IS_TRANSIENT,
+				"smallicon", null, 0, 1, PageflowPage.class, !IS_TRANSIENT,
 				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
 				!IS_DERIVED, IS_ORDERED);
 		initEAttribute(getPFPage_Largeicon(), ecorePackage.getEString(),
-				"largeicon", null, 0, 1, PFPage.class, !IS_TRANSIENT,
+				"largeicon", null, 0, 1, PageflowPage.class, !IS_TRANSIENT,
 				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
 				!IS_DERIVED, IS_ORDERED);
 
-		initEClass(pfLinkBendpointEClass, PFLinkBendpoint.class,
+		initEClass(pfLinkBendpointEClass, PageflowLinkBendpoint.class,
 				"PFLinkBendpoint", !IS_ABSTRACT, !IS_INTERFACE,
 				IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getPFLinkBendpoint_D1Width(), ecorePackage.getEInt(),
-				"d1Width", null, 0, 1, PFLinkBendpoint.class, !IS_TRANSIENT,
+				"d1Width", null, 0, 1, PageflowLinkBendpoint.class, !IS_TRANSIENT,
 				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
 				!IS_DERIVED, IS_ORDERED);
 		initEAttribute(getPFLinkBendpoint_D1Height(), ecorePackage.getEInt(),
-				"d1Height", null, 0, 1, PFLinkBendpoint.class, !IS_TRANSIENT,
+				"d1Height", null, 0, 1, PageflowLinkBendpoint.class, !IS_TRANSIENT,
 				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
 				!IS_DERIVED, IS_ORDERED);
 		initEAttribute(getPFLinkBendpoint_D2Width(), ecorePackage.getEInt(),
-				"d2Width", null, 0, 1, PFLinkBendpoint.class, !IS_TRANSIENT,
+				"d2Width", null, 0, 1, PageflowLinkBendpoint.class, !IS_TRANSIENT,
 				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
 				!IS_DERIVED, IS_ORDERED);
 		initEAttribute(getPFLinkBendpoint_D2Height(), ecorePackage.getEInt(),
-				"d2Height", null, 0, 1, PFLinkBendpoint.class, !IS_TRANSIENT,
+				"d2Height", null, 0, 1, PageflowLinkBendpoint.class, !IS_TRANSIENT,
 				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
 				!IS_DERIVED, IS_ORDERED);
 		initEAttribute(getPFLinkBendpoint_Weight(), ecorePackage.getEFloat(),
-				"weight", "0.5", 0, 1, PFLinkBendpoint.class, !IS_TRANSIENT,
+				"weight", "0.5", 0, 1, PageflowLinkBendpoint.class, !IS_TRANSIENT,
 				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
 				!IS_DERIVED, IS_ORDERED);
 		initEReference(getPFLinkBendpoint_Link(), this.getPFLink(), this
 				.getPFLink_BendPoints(), "link", null, 1, 1,
-				PFLinkBendpoint.class, !IS_TRANSIENT, !IS_VOLATILE,
+				PageflowLinkBendpoint.class, !IS_TRANSIENT, !IS_VOLATILE,
 				IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES,
 				!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/impl/PageflowPageImpl.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/impl/PageflowPageImpl.java
new file mode 100644
index 0000000..9fc4c42
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/model/impl/PageflowPageImpl.java
@@ -0,0 +1,761 @@
+/*******************************************************************************
+ * 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.EObject;
+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.NavigationCaseType;
+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.Pageflow;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPackage;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPage;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.synchronization.FC2PFTransformer;
+
+/**
+ * <!-- 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.PageflowPageImpl#getPath <em>Path</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PageflowPageImpl#getSmallicon <em>Smallicon</em>}</li>
+ * <li>{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PageflowPageImpl#getLargeicon <em>Largeicon</em>}</li>
+ * </ul>
+ * </p>
+ * 
+ * @generated
+ */
+public class PageflowPageImpl extends PageflowNodeImpl implements PageflowPage {
+	private String path;
+
+	private String smallIcon;
+
+	private String largeIcon;
+
+	/**
+	 * 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 PageflowPageImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return PageflowPackage.eINSTANCE.getPFPage();
+	}
+
+	public NavigationRuleType resolveRuleFromFCElement(Object object) {
+		if (object instanceof FromViewIdType) {
+			return (NavigationRuleType) ((FromViewIdType) object).eContainer();
+		}
+		return null;
+	}
+
+	public NavigationRuleType resolveRuleFromPFElement(Object object) {
+		if (object instanceof PageflowLink) {
+			NavigationCaseType caseType = (NavigationCaseType) ((PageflowLink) object)
+					.getFCElements().getData().get(0);
+			return (NavigationRuleType) caseType.eContainer();
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public String getPath() {
+		String result = null;
+		if (!getFCElements().isEmpty()) {
+			for (int i = 0, n = getFCElements().getData().size(); i < n; i++) {
+				if (getFCElements().getData().get(i) instanceof FromViewIdType) {
+					result = ((FromViewIdType) getFCElements().getData().get(i))
+							.getTextContent();
+					break;
+				}
+			}
+			if (result == null
+					&& getFCElements().getData().get(0) instanceof ToViewIdType) {
+				result = ((ToViewIdType) getFCElements().getData().get(0))
+						.getTextContent();
+			}
+		}
+		// Try to return reasonable result.
+		return result == null && getFCElements().isEmpty() ? path
+				: (result != null ? result : PATH_EDEFAULT);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public void setPath(String newValue) {
+		Object oldPath = null;
+		Object newPath = null;
+		path = newValue;
+		if (!getFCElements().isEmpty()) {
+			for (int i = 0, n = getFCElements().getData().size(); i < n; i++) {
+				if (getFCElements().getData().get(i) instanceof FromViewIdType) {
+					oldPath = getFCElements().getData().get(i);
+					((FromViewIdType) oldPath).setTextContent(newValue);
+				} else if (getFCElements().getData().get(i) instanceof FromViewIdType) {
+					oldPath = getFCElements().getData().get(i);
+					((ToViewIdType) oldPath).setTextContent(newValue);
+				}
+			}
+		}
+		// Create new fromViewID or toViewID node as needed.
+		else if (newValue != null && !"*".equals(newValue)) {
+			if (getOutlinks().size() > 0) {
+				List links = getOutlinks();
+				for (int i = 0, n = links.size(); i < n; i++) {
+					PageflowLink link = (PageflowLink) links.get(i);
+					NavigationRuleType rule = resolveRuleFromPFElement(link);
+					newPath = FC2PFTransformer.getInstance()
+							.createRLFromViewID(newValue);
+					rule.setFromViewId((FromViewIdType) newPath);
+					getFCElements().add((EObject) newPath);
+				}
+				links = getInlinks();
+				for (int i = 0, n = links.size(); i < n; i++) {
+					PageflowLink link = (PageflowLink) links.get(i);
+					NavigationCaseType caseType = (NavigationCaseType) link
+							.getFCElements().getData().get(0);
+					newPath = FC2PFTransformer.getInstance().createFCToViewID(
+							newValue);
+					caseType.setToViewId((ToViewIdType) newPath);
+					getFCElements().add((EObject) newPath);
+				}
+			}
+		}
+
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					PageflowPackage.PF_PAGE__PATH, oldPath, newValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+
+	public void setComment(String newValue) {
+		DescriptionType oldComment = null;
+		DescriptionType description = null;
+		if (!getFCElements().isEmpty()) {
+			for (int i = 0, n = getFCElements().getData().size(); i < n; i++) {
+				NavigationRuleType rule = null;
+				if ((rule = resolveRuleFromFCElement(getFCElements().getData()
+						.get(i))) != null) {
+					if (rule.getDescription().size() > 0) {
+						oldComment = (DescriptionType) rule.getDescription()
+								.get(0);
+					}
+					rule.getDescription().clear();
+					description = FacesConfigFactory.eINSTANCE
+							.createDescriptionType();
+					description.setTextContent(newValue);
+					rule.getDescription().add(description);
+				}
+			}
+		}
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					PageflowPackage.PAGEFLOW_ELEMENT__COMMENT, oldComment,
+					description));
+
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+
+	public String getComment() {
+		DescriptionType result = null;
+		if (!getFCElements().isEmpty()) {
+			for (int i = 0, n = getFCElements().getData().size(); i < n; i++) {
+				NavigationRuleType rule = null;
+				if ((rule = resolveRuleFromFCElement(getFCElements().getData()
+						.get(i))) != null) {
+					List descriptions = rule.getDescription();
+					if (descriptions.size() > 0) {
+						result = (DescriptionType) descriptions.get(0);
+						break;
+					}
+				}
+			}
+		}
+		return result == null && getFCElements().isEmpty() ? comment
+				: (result != null ? result.getTextContent()
+						: PageflowElementImpl.COMMENT_EDEFAULT);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+
+	public String getName() {
+		String result = null;
+		// To see if it is in navigation rule.
+		if (!getFCElements().isEmpty() && getOutlinks().size() > 0) {
+			for (int i = 0, n = getFCElements().getData().size(); i < n; i++) {
+				NavigationRuleType rule = null;
+				if ((rule = resolveRuleFromFCElement(getFCElements().getData()
+						.get(i))) != null) {
+					List displaynames = rule.getDisplayName();
+					if (displaynames.size() > 0) {
+						result = ((DisplayNameType) displaynames.get(0))
+								.getTextContent();
+						break;
+					}
+				}
+			}
+			if (result == null) {
+				result = getPath();
+			}
+		} else {
+			result = super.getName();
+		}
+		return result == null && getFCElements().isEmpty() ? PageflowElementImpl.NAME_EDEFAULT
+				: (result == null ? null : result);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+
+	public void setName(String newName) {
+		DescriptionType oldComment = null;
+		DisplayNameType newDisplayNameType = null;
+		super.setName(newName);
+		if (!getFCElements().isEmpty()) {
+			for (int i = 0, n = getFCElements().getData().size(); i < n; i++) {
+				NavigationRuleType rule = null;
+				if ((rule = resolveRuleFromFCElement(getFCElements().getData()
+						.get(i))) != null) {
+					oldComment = rule.getDescription().size() > 0 ? (DescriptionType) rule
+							.getDescription().get(0)
+							: null;
+					rule.getDisplayName().clear();
+					if (newName != null && newName.length() > 0) {
+						newDisplayNameType = FacesConfigFactory.eINSTANCE
+								.createDisplayNameType();
+						newDisplayNameType.setTextContent(newName);
+						rule.getDisplayName().add(newDisplayNameType);
+					}
+				}
+			}
+		}
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					PageflowPackage.PAGEFLOW_ELEMENT__COMMENT, oldComment,
+					newDisplayNameType));
+
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public String getSmallicon() {
+		SmallIconType result = null;
+		if (!getFCElements().isEmpty()) {
+			for (int i = 0, n = getFCElements().getData().size(); i < n; i++) {
+				NavigationRuleType rule = null;
+				if ((rule = resolveRuleFromFCElement(getFCElements().getData()
+						.get(i))) != null) {
+					List icons = rule.getIcon();
+					if (icons.size() > 0) {
+						result = ((IconType) icons.get(0)).getSmallIcon();
+						break;
+					}
+				}
+			}
+		}
+		return result == null && getFCElements().isEmpty() ? smallIcon
+				: (result != null ? result.getTextContent()
+						: SMALLICON_EDEFAULT);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public void setSmallicon(String newValue) {
+		SmallIconType oldSmallicon = null;
+		SmallIconType newSmallIconType = null;
+		IconType icon = null;
+		smallIcon = newValue;
+		if (!getFCElements().isEmpty()) {
+			for (int i = 0, n = getFCElements().getData().size(); i < n; i++) {
+				NavigationRuleType rule = null;
+				if ((rule = resolveRuleFromFCElement(getFCElements().getData()
+						.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,
+					newSmallIconType));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public String getLargeicon() {
+		LargeIconType result = null;
+		if (!getFCElements().isEmpty()) {
+			for (int i = 0, n = getFCElements().getData().size(); i < n; i++) {
+				NavigationRuleType rule = null;
+				if ((rule = resolveRuleFromFCElement(getFCElements().getData()
+						.get(i))) != null) {
+					List icons = rule.getIcon();
+					if (icons.size() > 0) {
+						result = ((IconType) icons.get(0)).getLargeIcon();
+						break;
+					}
+				}
+			}
+		}
+		return result == null && getFCElements().isEmpty() ? largeIcon
+				: (result != null ? result.getTextContent()
+						: LARGEICON_EDEFAULT);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public void setLargeicon(String newValue) {
+
+		LargeIconType oldLargeIcon = null;
+		LargeIconType newLargeIconType = null;
+		IconType icon = null;
+		largeIcon = newValue;
+		if (!getFCElements().isEmpty()) {
+			for (int i = 0, n = getFCElements().getData().size(); i < n; i++) {
+				NavigationRuleType rule = null;
+				if ((rule = resolveRuleFromFCElement(getFCElements().getData()
+						.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,
+					newLargeIconType));
+	}
+
+	/**
+	 * <!-- 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/properties/ActionOutcomeDialogCellEditor.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/ActionOutcomeDialogCellEditor.java
index 590541b..924ebd1 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/ActionOutcomeDialogCellEditor.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/ActionOutcomeDialogCellEditor.java
@@ -13,8 +13,8 @@
 package org.eclipse.jst.jsf.facesconfig.ui.pageflow.properties;
 
 import org.eclipse.jface.window.Window;
-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.PageflowLink;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPage;
 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.util.WebrootUtil;
@@ -72,11 +72,11 @@
 	 */
 	private String getPreviousJSPPath(PageflowElement element) {
 		String jspPath = null;
-		if (element instanceof PFLink) {
-			PageflowNode source = ((PFLink) element).getSource();
+		if (element instanceof PageflowLink) {
+			PageflowNode source = ((PageflowLink) element).getSource();
 
-			if (source instanceof PFPage) {
-				jspPath = ((PFPage) source).getPath();
+			if (source instanceof PageflowPage) {
+				jspPath = ((PageflowPage) source).getPath();
 			}
 		}
 		return jspPath;
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/GeneralViewSectionDescriptor.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/GeneralViewSectionDescriptor.java
index 15b4801..b6c6252 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/GeneralViewSectionDescriptor.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/GeneralViewSectionDescriptor.java
@@ -17,10 +17,10 @@
 import org.eclipse.jface.text.TextSelection;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jst.jsf.facesconfig.ui.pageflow.editpart.PFLinkEditPart;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.editpart.PageflowLinkEditPart;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.editpart.PageflowElementEditPart;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.editpart.PageflowElementTreeEditPart;
-import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.util.PageflowValidation;
 import org.eclipse.ui.IWorkbenchPart;
 import org.eclipse.wst.common.ui.properties.internal.provisional.ISection;
@@ -102,8 +102,8 @@
 			if (object instanceof PageflowElementEditPart
 					|| object instanceof PageflowElementTreeEditPart) {
 				return true;
-			} else if (object instanceof PFLinkEditPart) {
-				PFLink pfLink = (PFLink) ((PFLinkEditPart) object).getModel();
+			} else if (object instanceof PageflowLinkEditPart) {
+				PageflowLink pfLink = (PageflowLink) ((PageflowLinkEditPart) object).getModel();
 				if (PageflowValidation.getInstance().isValidLinkForProperty(
 						pfLink)) {
 					return true;
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/LinkSectionDescriptor.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/LinkSectionDescriptor.java
index f913b3b..14aa8b0 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/LinkSectionDescriptor.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/LinkSectionDescriptor.java
@@ -15,8 +15,8 @@
 
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jst.jsf.facesconfig.ui.pageflow.editpart.PFLinkEditPart;
-import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.editpart.PageflowLinkEditPart;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.properties.section.LinkSection;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.util.PageflowValidation;
 import org.eclipse.ui.IWorkbenchPart;
@@ -86,8 +86,8 @@
 		if (selection instanceof StructuredSelection) {
 			StructuredSelection structuredSelection = (StructuredSelection) selection;
 			object = structuredSelection.getFirstElement();
-			if (object instanceof PFLinkEditPart) {
-				PFLink pfLink = (PFLink) ((PFLinkEditPart) object).getModel();
+			if (object instanceof PageflowLinkEditPart) {
+				PageflowLink pfLink = (PageflowLink) ((PageflowLinkEditPart) object).getModel();
 				if (PageflowValidation.getInstance().isValidLinkForProperty(
 						pfLink)) {
 
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/PageSectionDescriptor.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/PageSectionDescriptor.java
index 473679d..3c5bdca 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/PageSectionDescriptor.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/PageSectionDescriptor.java
@@ -16,7 +16,7 @@
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.editpart.PageflowNodeEditPart;
-import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PFPageImpl;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PageflowPageImpl;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.properties.section.PageSection;
 import org.eclipse.ui.IWorkbenchPart;
 import org.eclipse.wst.common.ui.properties.internal.provisional.ISection;
@@ -87,7 +87,7 @@
 			object = structuredSelection.getFirstElement();
 			if (object instanceof PageflowNodeEditPart) {
 				Object model = ((PageflowNodeEditPart) object).getModel();
-				if (model instanceof PFPageImpl) {
+				if (model instanceof PageflowPageImpl) {
 					return true;
 				}
 			}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/PageflowElementPropertySource.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/PageflowElementPropertySource.java
index 4fbf4ba..0da99a3 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/PageflowElementPropertySource.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/PageflowElementPropertySource.java
@@ -26,8 +26,8 @@
 import org.eclipse.jst.jsf.facesconfig.ui.EditorPlugin;
 import org.eclipse.jst.jsf.facesconfig.ui.EditorResources;
 import org.eclipse.jst.jsf.facesconfig.ui.IconResources;
-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.PageflowLink;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPage;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowElement;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.util.PageflowValidation;
 import org.eclipse.swt.graphics.Image;
@@ -144,7 +144,7 @@
 		// property descriptors
 		List propertyDescriptors = new Vector();
 
-		if (element instanceof PFLink) {
+		if (element instanceof PageflowLink) {
 			return getLinkPropertyDescriptors();
 		}
 
@@ -259,12 +259,12 @@
 			protected ICellEditorValidator getValidator() {
 				return new ICellEditorValidator() {
 					public String isValid(Object value) {
-						if (((PFPage) element).getPath() != null
+						if (((PageflowPage) element).getPath() != null
 								&& value != null
-								&& !((PFPage) element).getPath()
+								&& !((PageflowPage) element).getPath()
 										.equalsIgnoreCase((String) value)) {
 							if (PageflowValidation.getInstance().isExistedPage(
-									((PFPage) element).getPageflow(),
+									((PageflowPage) element).getPageflow(),
 									(String) value)) {
 								// Pageflow.PageflowEditor.Alert.DNDResourceTitle
 								// = Pageflow Creation Error
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/PageflowSectionLabelProvider.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/PageflowSectionLabelProvider.java
index 35535d8..f1d869d 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/PageflowSectionLabelProvider.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/PageflowSectionLabelProvider.java
@@ -18,7 +18,7 @@
 import org.eclipse.jst.jsf.facesconfig.ui.EditorPlugin;
 import org.eclipse.jst.jsf.facesconfig.ui.EditorResources;
 import org.eclipse.jst.jsf.facesconfig.ui.IconResources;
-import org.eclipse.jst.jsf.facesconfig.ui.pageflow.editpart.PFLinkEditPart;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.editpart.PageflowLinkEditPart;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.editpart.PageflowElementEditPart;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.editpart.PageflowElementTreeEditPart;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowElement;
@@ -61,7 +61,7 @@
 			StructuredSelection structuredSelection = (StructuredSelection) object;
 			Object pageflow = structuredSelection.getFirstElement();
 			if (pageflow instanceof PageflowElementEditPart
-					|| pageflow instanceof PFLinkEditPart
+					|| pageflow instanceof PageflowLinkEditPart
 					|| pageflow instanceof PageflowElementTreeEditPart) {
 				String className = ((PageflowElement) ((AbstractEditPart) pageflow)
 						.getModel()).eClass().getName();
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/section/LinkGroup.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/section/LinkGroup.java
index f71f07d..b9428dd 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/section/LinkGroup.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/section/LinkGroup.java
@@ -20,8 +20,8 @@
 import org.eclipse.jst.jsf.facesconfig.common.dialogfield.IStringButtonAdapter;
 import org.eclipse.jst.jsf.facesconfig.common.dialogfield.LayoutUtil;
 import org.eclipse.jst.jsf.facesconfig.common.dialogfield.StringButtonDialogField;
-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.PageflowLink;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPage;
 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.properties.ActionOutcomeSelectionDialog;
@@ -44,7 +44,7 @@
 
 	private ComboDialogField redirectField;
 
-	private PFLink pfLink;
+	private PageflowLink pfLink;
 
 	/** Integer value for boolean type */
 	private static final Integer P_VALUE_TRUE = new Integer(0);
@@ -82,10 +82,10 @@
 		 */
 		private String getPreviousJSPPath(PageflowElement element) {
 			String jspPath = null;
-			if (element instanceof PFLink) {
-				PageflowNode source = ((PFLink) element).getSource();
-				if (source instanceof PFPage) {
-					jspPath = ((PFPage) source).getPath();
+			if (element instanceof PageflowLink) {
+				PageflowNode source = ((PageflowLink) element).getSource();
+				if (source instanceof PageflowPage) {
+					jspPath = ((PageflowPage) source).getPath();
 				}
 			}
 			return jspPath;
@@ -166,7 +166,7 @@
 
 	}
 
-	public void setPropertyProvider(PFLink elem) {
+	public void setPropertyProvider(PageflowLink elem) {
 		pfLink = elem;
 		this.refreshData();
 	}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/section/LinkSection.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/section/LinkSection.java
index ba6a773..8cf5bce 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/section/LinkSection.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/section/LinkSection.java
@@ -14,8 +14,8 @@
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jst.jsf.facesconfig.common.dialogfield.DialogField;
 import org.eclipse.jst.jsf.facesconfig.common.dialogfield.IDialogFieldApplyListener;
-import org.eclipse.jst.jsf.facesconfig.ui.pageflow.editpart.PFLinkEditPart;
-import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.editpart.PageflowLinkEditPart;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PageflowPackageImpl;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.util.PageflowValidation;
 import org.eclipse.swt.widgets.Composite;
@@ -33,7 +33,7 @@
 	private LinkGroup group;
 
 	/** the emf model for Pageflow link */
-	private PFLink pfLink;
+	private PageflowLink pfLink;
 
 	/**
 	 * 
@@ -89,10 +89,10 @@
 	public void setInput(IWorkbenchPart part, ISelection selection) {
 		super.setInput(part, selection);
 
-		if (getInput() != null && getInput() instanceof PFLinkEditPart) {
-			Object model = ((PFLinkEditPart) getInput()).getModel();
-			if (model instanceof PFLink) {
-				pfLink = (PFLink) model;
+		if (getInput() != null && getInput() instanceof PageflowLinkEditPart) {
+			Object model = ((PageflowLinkEditPart) getInput()).getModel();
+			if (model instanceof PageflowLink) {
+				pfLink = (PageflowLink) model;
 				if (PageflowValidation.getInstance().isValidLinkForProperty(
 						pfLink)) {
 					refreshData();
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/section/PageGroup.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/section/PageGroup.java
index bd8c992..b843b82 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/section/PageGroup.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/section/PageGroup.java
@@ -16,7 +16,7 @@
 import org.eclipse.jst.jsf.facesconfig.common.dialogfield.LayoutUtil;
 import org.eclipse.jst.jsf.facesconfig.common.dialogfield.StringButtonDialogField;
 import org.eclipse.jst.jsf.facesconfig.common.dialogfield.StringDialogField;
-import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFPage;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPage;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowElement;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.properties.ITabbedPropertiesConstants;
 import org.eclipse.swt.SWT;
@@ -34,7 +34,7 @@
 
 	private StringButtonDialogField fromViewField;
 
-	private PFPage pfPage = null;
+	private PageflowPage pfPage = null;
 
 	private StringDialogField largeIconField;
 
@@ -152,7 +152,7 @@
 		fromViewField.getChangeControl(toolkit, top).setLayoutData(data);
 	}
 
-	public void setPropertyProvider(PFPage elem) {
+	public void setPropertyProvider(PageflowPage elem) {
 		pfPage = elem;
 		this.refreshData();
 	}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/section/PageSection.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/section/PageSection.java
index c3c46ef..1076bc0 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/section/PageSection.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/section/PageSection.java
@@ -16,7 +16,7 @@
 import org.eclipse.jst.jsf.facesconfig.common.dialogfield.IDialogFieldApplyListener;
 import org.eclipse.jst.jsf.facesconfig.ui.EditorPlugin;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.editpart.PageflowNodeEditPart;
-import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFPage;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPage;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PageflowPackageImpl;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.util.PageflowValidation;
 import org.eclipse.swt.widgets.Composite;
@@ -34,7 +34,7 @@
 	private PageGroup group;
 
 	/** the emf model for Pageflow page */
-	private PFPage pfPage = null;
+	private PageflowPage pfPage = null;
 
 	/**
 	 * 
@@ -145,8 +145,8 @@
 
 		if (getInput() != null && getInput() instanceof PageflowNodeEditPart) {
 			Object model = ((PageflowNodeEditPart) getInput()).getModel();
-			if (model instanceof PFPage) {
-				pfPage = (PFPage) model;
+			if (model instanceof PageflowPage) {
+				pfPage = (PageflowPage) model;
 				refreshData();
 			}
 		}
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 c03fe07..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
@@ -5,26 +5,40 @@
  */
 package org.eclipse.jst.jsf.facesconfig.ui.pageflow.synchronization;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-import java.util.Vector;
 
 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.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.jface.util.Assert;
+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.FacesConfigPackage;
 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.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.PageflowLink;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowNode;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPackage;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPage;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.util.PageflowModelManager;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.util.PageflowTransform;
 
 /**
@@ -34,47 +48,765 @@
  * 
  */
 
-public class FC2PFTransformer implements Adapter {
-	private boolean listenToNotify;
+public class FC2PFTransformer {
+	// For code debug.
+	private static final boolean DEBUG = false;
 
-	PF2FCSynchronizer pf2FCSynchronizer;
+	class PF2FCSynchronizer implements Adapter {
 
-	FC2PFSynchronizer fc2PFSynchronizer;
+		public PF2FCSynchronizer() {
+		}
 
-	private boolean isInEvent;
+		public Notifier getTarget() {
+			// TODO Auto-generated method stub
+			return null;
+		}
 
-	private Map mapCases2Links = new HashMap();
+		public boolean isAdapterForType(Object type) {
+			return type == PF2FCSynchronizer.class;
+		}
 
-	private Map mapLinks2Cases = new HashMap();
+		private void addPage(Notification notification, PageflowElement element) {
+		}
 
-	public Map getMapCases2Links() {
-		return mapCases2Links;
+		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;
+		}
+
+		private void updateFacesRule(NavigationRuleType navigationRule,
+				PageflowPage 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);
+			}
+			if (pageSource.getName() != null) {
+				DisplayNameType displayName = factory.createDisplayNameType();
+				displayName.setTextContent(pageSource.getName());
+				navigationRule.getDisplayName().clear();
+				navigationRule.getDisplayName().add(displayName);
+			}
+		}
+
+		private void createFacesCase(PageflowLink link, PageflowPage source,
+				PageflowPage 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);
+			rule.getNavigationCase().add(navCase);
+			facesConfig.getNavigationRule().add(rule);
+			updateFacesRule(rule, source);
+			source.getFCElements().add(from);
+			target.getFCElements().add(toView);
+			link.getFCElements().add(navCase);
+			mapCases2Links.put(navCase, link);
+		}
+
+		private void removePageToPageLink(PageflowPage start,
+				PageflowLink link, PageflowPage target) {
+			if (!link.getFCElements().isEmpty()) {
+				FC2PFTransformer.getInstance().unAdapt(link);
+				NavigationCaseType caseFC = (NavigationCaseType) link
+						.getFCElements().getData().get(0);// (NavigationCaseType)
+				link.getFCElements().remove(caseFC);
+				mapCases2Links.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 propertyChanged(Notification notification,
+				PageflowElement element) {
+			if (notification.getNewValue() != null) {
+				int value = notification.getFeatureID(PageflowPackage.class);
+				if (element instanceof PageflowPage) {
+					// setPageProperties(notification, element, value);
+				} else if (element instanceof PageflowLink) {
+					if (DEBUG)
+						System.out.println("The link property is changed");
+					// setLinkProperties(notification, element, value);
+				}
+			}
+		}
+
+		// private void setPageProperties(Notification notification,
+		// PageflowElement element, int value) {
+		// String path = ((PageflowPage) 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(PageflowPage source,
+				PageflowPage target, PageflowLink value) {
+			if (source != null && target != null && value != null) {
+				createFacesCase(value, (PageflowPage) source,
+						(PageflowPage) target);
+			}
+		}
+
+		private void addInLink(Notification notification,
+				PageflowElement element) {
+			Object value = notification.getNewValue();
+			PageflowLink link = (PageflowLink) value;
+			if (element instanceof PageflowPage) {
+				PageflowNode source = link.getSource();
+				if (source instanceof PageflowPage) {
+					addPageToPageLink((PageflowPage) source,
+							(PageflowPage) element, link);
+				}
+			}
+
+		}
+
+		private void addOutLink(Notification notification,
+				PageflowElement element) {
+			Object value = notification.getNewValue();
+			// for outLink remove, only target is referenced.
+			PageflowLink link = (PageflowLink) value;
+			if (element instanceof PageflowPage) {
+				PageflowNode target = link.getTarget();
+				// page->page
+				if (target instanceof PageflowPage) {
+					addPageToPageLink((PageflowPage) element,
+							(PageflowPage) target, link);
+				}
+			}
+		}
+
+		private void removePage(Notification notification,
+				PageflowElement element) {
+
+		}
+
+		private void removeInLink(Notification notification,
+				PageflowElement element) {
+			Object value = notification.getOldValue();
+			PageflowLink link = (PageflowLink) value;
+
+			if (element instanceof PageflowPage) {
+				PageflowNode source = link.getSource();
+				if (source instanceof PageflowPage) {
+					removePageToPageLink((PageflowPage) source, link,
+							(PageflowPage) element);
+				}
+			}
+		}
+
+		private void removeOutLink(Notification notification,
+				PageflowElement element) {
+			Object value = notification.getOldValue();
+			PageflowLink link = (PageflowLink) value;
+			if (element instanceof PageflowPage) {
+				PageflowNode target = link.getTarget();
+				// page->page
+				if (target instanceof PageflowPage) {
+					removePageToPageLink((PageflowPage) element, link,
+							(PageflowPage) target);
+				}
+			}
+		}
+
+		public void notifyChanged(Notification notification) {
+			if (!listenToNotify || isInEvent) {
+				return;
+			}
+			isInEvent = true;
+			PageflowElement element;
+			if (!(notification.getNotifier() instanceof PageflowElement)) {
+				return;
+			}
+			element = (PageflowElement) notification.getNotifier();
+			int type = notification.getEventType();
+			switch (type) {
+			case Notification.ADD: {
+				// Object feature = notification.getFeature();
+				// if (feature == PageflowPackage.eINSTANCE
+				// .getPageflowNode_Inlinks()) {
+				//
+				// }
+				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);
+					updateAndNotify(notification);
+					break;
+				case PageflowPackage.PAGEFLOW_NODE__OUTLINKS:
+					removeOutLink(notification, element);
+					updateAndNotify(notification);
+					break;
+				case PageflowPackage.PAGEFLOW_NODE__INLINKS:
+					removeInLink(notification, element);
+					updateAndNotify(notification);
+					break;
+				// case PageflowPackage.PAGEFLOW:
+				// updateAndNotify(notification);
+				// break;
+				}
+				break;
+			}
+			}
+			refreshPFAdapter(pageflow);
+			refreshFCAdapter(facesConfig);
+			isInEvent = false;
+		}
+
+		private void updateAndNotify(Notification notification) {
+			pageflow.notifyModelChanged(new ENotificationImpl(
+					(InternalEObject) notification.getNotifier(),
+					Notification.SET, PageflowPackage.PAGEFLOW, null, null));
+		}
+
+		public void dispose() {
+
+		}
+
+		public void setTarget(Notifier newTarget) {
+			// TODO Auto-generated method stub
+
+		}
+
 	}
 
-	public Map getMapLinks2Cases() {
-		return mapLinks2Cases;
+	class FC2PFSynchronizer implements Adapter {
+
+		public FC2PFSynchronizer() {
+		}
+
+		public Notifier getTarget() {
+			// TODO Auto-generated method stub
+			return null;
+		}
+
+		public boolean isAdapterForType(Object type) {
+			return type == FC2PFSynchronizer.class;
+		}
+
+		private void processAdd(Notification notification) {
+			Object feature = notification.getFeature();
+			if (feature == FacesConfigPackage.eINSTANCE
+					.getNavigationRuleType_NavigationCase()) {
+				if (DEBUG)
+					System.out.println("New navigation case");
+				NavigationCaseType newCase = (NavigationCaseType) notification
+						.getNewValue();
+				updatePageflowElements(pageflow, newCase);
+			} else if (feature == FacesConfigPackage.eINSTANCE
+					.getFacesConfigType_NavigationRule()) {
+				NavigationRuleType newRule = (NavigationRuleType) notification
+						.getNewValue();
+				if (newRule.getNavigationCase().size() > 0) {
+					for (int i = 0; i < newRule.getNavigationCase().size(); i++) {
+						updatePageflowElements(pageflow,
+								(NavigationCaseType) newRule
+										.getNavigationCase().get(i));
+					}
+				}
+				if (DEBUG)
+					System.out.println("New navigation rule");
+			} else if (DEBUG)
+				System.out.println("Something is added");
+		}
+
+		public void notifyChanged(Notification notification) {
+			if (!listenToNotify || isInEvent
+					|| !(notification.getNotifier() instanceof EObject)) {
+				return;
+			}
+			isInEvent = true;
+			if (checkSanity(notification)) {
+				int type = notification.getEventType();
+				switch (type) {
+				case Notification.ADD: {
+					processAdd(notification);
+					updateAndNotify(notification);
+					break;
+				}
+				case Notification.SET: {
+					processSet(notification);
+					updateAndNotify(notification);
+					break;
+				}
+				case Notification.REMOVE:
+					processRemove(notification);
+					updateAndNotify(notification);
+					break;
+				}
+			}
+			refreshFCAdapter((EObject) notification.getNotifier());
+			refreshPFAdapter(pageflow);
+
+			isInEvent = false;
+		}
+
+		private void updateAndNotify(Notification notification) {
+			Assert
+					.isTrue(notification.getNotifier() instanceof InternalEObject);
+			pageflow.notifyModelChanged(new ENotificationImpl(
+					(InternalEObject) notification.getNotifier(),
+					Notification.SET, PageflowPackage.PAGEFLOW, null, null));
+		}
+
+		/**
+		 * Avoid to process partial navigation rule or navigation case.
+		 * 
+		 * @param notification
+		 * @return
+		 */
+		private boolean checkSanity(Notification notification) {
+			// boolean result = false;
+			// int type = notification.getEventType();
+			// switch (type) {
+			// case Notification.ADD:
+			// Object newObject = notification.getNewValue();
+			// if (newObject instanceof ToViewIdType
+			// || newObject instanceof FromViewIdType) {
+			// result = isValidViewID(newObject);
+			// }
+			// break;
+			// case Notification.SET:
+			// result = true;
+			// newObject = notification.getNewValue();
+			// if (newObject instanceof ToViewIdType
+			// || newObject instanceof FromViewIdType) {
+			// result = isValidViewID(notification.getNewValue());
+			// }
+			// break;
+			// case Notification.REMOVE:
+			// result = true;
+			// }
+			// return result;
+			return true;
+		}
+
+		private boolean isValidViewID(Object object) {
+			boolean result = false;
+			if (object instanceof ToViewIdType) {
+				result = ((ToViewIdType) object).getTextContent() != null
+						&& ((ToViewIdType) object).getTextContent().trim()
+								.length() > 0;
+			} else if (object instanceof FromViewIdType) {
+				result = ((FromViewIdType) object).getTextContent() != null
+						&& ((FromViewIdType) object).getTextContent().trim()
+								.length() > 0;
+			}
+			return result;
+		}
+
+		private void processRemove(Notification notification) {
+			if (notification.getFeature() == FacesConfigPackage.eINSTANCE
+					.getNavigationRuleType_NavigationCase()) {
+				if (notification.getOldValue() instanceof NavigationCaseType) {
+					NavigationCaseType caseType = (NavigationCaseType) notification
+							.getOldValue();
+					PageflowLink link = (PageflowLink) mapCases2Links
+							.get(caseType);
+					removeLink(link);
+				}
+				if (DEBUG)
+					System.out.println("Navigation case");
+			} else if (notification.getFeature() == FacesConfigPackage.eINSTANCE
+					.getNavigationCaseType()) {
+				if (notification.getOldValue() instanceof NavigationRuleType) {
+					NavigationRuleType rule = (NavigationRuleType) notification
+							.getOldValue();
+					moveStartTo(rule, null, rule.getFromViewId());
+				}
+				if (DEBUG)
+					System.out.println("navigation rule");
+			} else if (notification.getFeature() == FacesConfigPackage.eINSTANCE
+					.getFacesConfigType_NavigationRule()) {
+				if (notification.getOldValue() instanceof NavigationRuleType) {
+					NavigationRuleType rule = (NavigationRuleType) notification
+							.getOldValue();
+					moveStartTo(rule, null, rule.getFromViewId());
+				}
+			}
+			if (DEBUG)
+				System.out.println("Something is removed");
+		}
+
+		private void processSet(Notification notification) {
+			Object feature = notification.getFeature();
+			if (feature == FacesConfigPackage.eINSTANCE
+					.getFromViewIdType_TextContent()
+					|| feature == FacesConfigPackage.eINSTANCE
+							.getNavigationRuleType_FromViewId()) {
+				fromViewIdChanged(notification);
+			} else if (feature == FacesConfigPackage.eINSTANCE
+					.getToViewIdType_TextContent()
+					|| feature == FacesConfigPackage.eINSTANCE
+							.getNavigationCaseType_ToViewId()) {
+				toViewIdChanged(notification);
+			}
+			if (DEBUG)
+				System.out.println("Something is set");
+		}
+
+		private void fromViewIdChanged(Notification notification) {
+			// remove
+			Object feature = notification.getFeature();
+			if (feature == FacesConfigPackage.eINSTANCE
+					.getNavigationRuleType_FromViewId()
+					&& notification.getNewValue() == null
+					&& notification.getOldValue() instanceof FromViewIdType) {
+				PageflowPage newStart = PageflowTransform.getInstance()
+						.createPFPage("*");
+				NavigationRuleType rule = (NavigationRuleType) notification
+						.getNotifier();
+				moveStartTo(rule, newStart, (FromViewIdType) notification
+						.getOldValue());
+			}
+			// add
+			else if (notification.getOldValue() == null
+					&& notification.getNewValue() instanceof String) {
+				String fromID = (String) notification.getNewValue();
+				PageflowPage newStart = findPage(fromID, pageflow);
+				newStart = newStart == null ? PageflowTransform.getInstance()
+						.createPFPage(fromID) : newStart;
+				NavigationRuleType rule = (NavigationRuleType) ((EObject) notification
+						.getNotifier()).eContainer();
+				moveStartTo(rule, newStart, (FromViewIdType) notification
+						.getNotifier());
+			}
+			// // change
+			// else if (notification.getOldValue() instanceof String &&
+			// notification.getNewValue() instanceof String)
+			// {
+			// mapPaths2PF.put(key, value)
+			// }
+		}
+
+		private void moveStartTo(NavigationRuleType rule,
+				PageflowPage newStart, FromViewIdType fromViewId) {
+			List cases = rule.getNavigationCase();
+			for (int i = 0, n = cases.size(); i < n; i++) {
+				NavigationCaseType caseFC = (NavigationCaseType) cases.get(i);
+				PageflowLink link = (PageflowLink) mapCases2Links.get(caseFC);
+				if (link.getSource() == newStart) {
+					continue;
+				}
+				PageflowPage start = (PageflowPage) link.getSource();
+				PageflowPage end = (PageflowPage) link.getTarget();
+				PageflowLink newLink = null;
+				if (newStart != null) {
+					newLink = createPFLink(newStart, end, caseFC);
+					mapCases2Links.put(caseFC, newLink);
+				}
+				// Remove old link
+				// link.getSource().getFCElements().remove(fromViewId);
+				// link.getTarget().getFCElements().remove(caseFC.getToViewId());
+				removeLink(link);
+				mapCases2Links.remove(caseFC);
+				if (newLink != null) {
+					mapCases2Links.put(caseFC, newLink);
+				}
+
+				if (start.getOutlinks().size() == 0
+						&& start.getInlinks().size() == 0) {
+					removePageflowPage(start);
+				}
+			}
+		}
+
+		private void toViewIdChanged(Notification notification) {
+			// remove
+			Object feature = notification.getFeature();
+			if (feature == FacesConfigPackage.eINSTANCE
+					.getNavigationCaseType_ToViewId()
+					&& notification.getNewValue() == null
+					&& notification.getOldValue() instanceof ToViewIdType) {
+				NavigationCaseType rule = (NavigationCaseType) ((EObject) notification
+						.getNotifier()).eContainer();
+				moveEndTo(rule, null, (ToViewIdType) notification.getOldValue());
+			}
+			// add
+			else if (feature == FacesConfigPackage.eINSTANCE
+					.getToViewIdType_TextContent()) {
+				String toViewId = (String) notification.getNewValue();
+				PageflowPage newEnd = findPage(toViewId, pageflow);
+				newEnd = newEnd == null ? PageflowTransform.getInstance()
+						.createPFPage(toViewId) : newEnd;
+				if (mapCases2Links.get(notification.getNotifier()) == null) {
+					// need to create new link:
+					updatePageflowElements(pageflow,
+							(NavigationCaseType) ((EObject) notification
+									.getNotifier()).eContainer());
+				} else {
+					NavigationCaseType rule = (NavigationCaseType) ((EObject) notification
+							.getNotifier()).eContainer();
+					moveEndTo(rule, newEnd, (ToViewIdType) notification
+							.getNotifier());
+				}
+			}
+		}
+
+		private void moveEndTo(NavigationCaseType caseFC, PageflowPage newEnd,
+				ToViewIdType toViewId) {
+			PageflowLink link = (PageflowLink) mapCases2Links.get(caseFC);
+			PageflowPage start = (PageflowPage) link.getSource();
+			PageflowPage end = (PageflowPage) link.getTarget();
+			PageflowLink newLink = null;
+			if (newEnd != null) {
+				newLink = createPFLink(start, newEnd, caseFC);
+			}
+			// Remove old link
+			link.getTarget().getFCElements().remove(toViewId);
+			removeLink(link);
+			mapCases2Links.remove(caseFC);
+			if (newLink != null) {
+				mapCases2Links.put(caseFC, newLink);
+			}
+
+			if (end.getOutlinks().size() == 0 && end.getInlinks().size() == 0) {
+				removePageflowPage(end);
+			}
+		}
+
+		private void removePageflowPage(PageflowPage source) {
+			Assert.isTrue(source.getOutlinks().size() == 0
+					&& source.getInlinks().size() == 0);
+			pageflow.getNodes().remove(source);
+		}
+
+		private void removeLink(PageflowLink pLink) {
+			// link
+			pLink.getPageflow().getLinks().remove(pLink);
+			pLink.getSource().getOutlinks().remove(pLink);
+			pLink.getTarget().getInlinks().remove(pLink);
+			pLink.getFCElements().clear();
+		}
+
+		public void dispose() {
+
+		}
+
+		public void setTarget(Notifier newTarget) {
+			// TODO Auto-generated method stub
+
+		}
+
 	}
 
-	public void facesConfigNotifyChanged(Notification notification) {
-		getFc2PFSynchronizer().notifyChanged(notification);
+	private void refreshPFAdapter(EObject object) {
+		TreeIterator rules = object.eAllContents();
+		while (rules.hasNext()) {
+			Object next = rules.next();
+			adapt((EObject) next);
+		}
+
+	}
+
+	private void refreshFCAdapter(EObject object) {
+		List rules = facesConfig.getNavigationRule();
+		for (int i = 0; i < rules.size(); i++) {
+			NavigationRuleType rule = (NavigationRuleType) rules.get(i);
+			adapt(rule);
+			TreeIterator children = rule.eAllContents();
+			while (children.hasNext()) {
+				adapt((EObject) children.next());
+			}
+		}
 	}
 
 	private static FC2PFTransformer _instance;
 
-	private Map mapPaths2FC = new HashMap();
+	/**
+	 * The listener is active.
+	 */
+	private boolean listenToNotify;
 
+	/**
+	 * Avoid redundent event.
+	 */
+	private boolean isInEvent;
+
+	boolean pageflowChanged = false;
+
+	/**
+	 * Catches
+	 */
 	private Map mapPaths2PF = new HashMap();
 
-	boolean newSource = false;
+	private Map mapCases2Links = new HashMap();
 
-	boolean newTarget = false;
-
-	boolean newAction = false;
-
-	boolean dirty = false;
-
+	/**
+	 * The pageflow model.
+	 */
 	private Pageflow pageflow;
 
+	/**
+	 * The faces-config model.
+	 */
 	FacesConfigType facesConfig;
 
 	public void setFacesConfig(FacesConfigType facesConfig) {
@@ -85,17 +817,53 @@
 		this.pageflow = pageflow;
 	}
 
-	public void clearCaches() {
-		mapPaths2FC.clear();
-		mapPaths2PF.clear();
-		mapCases2Links.clear();
-		mapLinks2Cases.clear();
+	/**
+	 * Install compatible synchronization adapter for particular object.
+	 * 
+	 * @param object
+	 */
+	public void adapt(EObject object) {
+		if (object != null && !isAdapted(object)) {
+			if (object instanceof PageflowElement) {
+				object.eAdapters().add(new PF2FCSynchronizer());
+			} else {
+				object.eAdapters().add(new FC2PFSynchronizer());
+			}
+		}
 	}
 
 	/**
-	 * The map from PFLink - Cases Use case.getContainer to get rule.
+	 * Remove the synchronization adapter.
+	 * 
+	 * @param object
 	 */
-	private Map cases2LinksMap = new HashMap();
+	public void unAdapt(EObject object) {
+		Iterator adapters = object.eAdapters().iterator();
+		while (adapters.hasNext()) {
+			Object adapter = adapters.next();
+			if (adapter instanceof FC2PFSynchronizer
+					|| adapter instanceof PF2FCSynchronizer) {
+				adapters.remove();
+			}
+		}
+	}
+
+	public boolean isAdapted(EObject object) {
+		Iterator adapters = object.eAdapters().iterator();
+		while (adapters.hasNext()) {
+			Object adapter = adapters.next();
+			if (adapter instanceof FC2PFSynchronizer
+					|| adapter instanceof PF2FCSynchronizer) {
+				return true;
+			}
+		}
+		return false;
+	}
+
+	public void clearCaches() {
+		mapPaths2PF.clear();
+		mapCases2Links.clear();
+	}
 
 	public static FC2PFTransformer getInstance() {
 		if (_instance == null) {
@@ -106,8 +874,6 @@
 
 	public void dispose() {
 		clearCaches();
-		getFc2PFSynchronizer().dispose();
-		getPf2FCSynchronizer().dispose();
 		_instance = null;
 	}
 
@@ -123,36 +889,17 @@
 		return false;
 	}
 
-	public void notifyChanged(Notification notification) {
-		if (listenToNotify && !isInEvent) {
-			isInEvent = true;
-			if (notification.getNotifier() instanceof PageflowElement) {
-				pageflowNotifyChanged(notification);
-			} else {
-				facesConfigNotifyChanged(notification);
-				// PageflowLayoutManager.getInstance().layoutPageflow(pageflow);
-			}
-			isInEvent = false;
-		}
-	}
-
 	public void setTarget(Notifier newTarget) {
 
 	}
 
-	public void pageflowNotifyChanged(Notification notification) {
-		getPf2FCSynchronizer().notifyChanged(notification);
-	}
-
-	public PFPage findPage(String path, Pageflow pageflow) {
+	public PageflowPage findPage(String path, Pageflow pageflow) {
 		List nodes = pageflow.getNodes();
 		for (int i = 0; i < nodes.size(); i++) {
-			if (nodes.get(i) instanceof PFPage) {
+			if (nodes.get(i) instanceof PageflowPage) {
 				if (path != null) {
-					RefElement element = new RefElement(((PFPage) nodes.get(i))
-							.getReferenceLink());
-					if (path.equals(((PFPage) nodes.get(i)).getPath())) {
-						return (PFPage) nodes.get(i);
+					if (path.equals(((PageflowPage) nodes.get(i)).getPath())) {
+						return (PageflowPage) nodes.get(i);
 					}
 				}
 			}
@@ -169,12 +916,12 @@
 		return null;
 	}
 
-	public PageflowNode findCaseEnd(PFPage action, FromOutcomeType outcome,
-			Pageflow pageflow) {
+	public PageflowNode findCaseEnd(PageflowPage action,
+			FromOutcomeType outcome, Pageflow pageflow) {
 		// TODO: find a case end in pageflow model
 		List links = action.getOutlinks();
 		for (int i = 0; i < links.size(); i++) {
-			PFLink link = (PFLink) links.get(i);
+			PageflowLink link = (PageflowLink) links.get(i);
 			String outcomeStr = "";
 			if (outcome != null) {
 				outcomeStr = outcome.getTextContent();
@@ -186,286 +933,83 @@
 		return null;
 	}
 
-	// public PFAction findCaseAction(PFPage page, String action, Pageflow
-	// pageflow) {
-	// // TODO: find an action in pageflow model
-	// // FromActionType action = caseFC.getFromAction();
-	// List links = page.getOutlinks();
-	// for (int i = 0; i < links.size(); i++) {
-	// PFLink link = (PFLink) links.get(i);
-	// if (link.getTarget() instanceof PFAction) {
-	// if (((PFAction) link.getTarget()).getName().equals(action)) {
-	// return (PFAction) link.getTarget();
-	// }
-	// }
-	// }
-	// return null;
-	// }
-
-	/**
-	 * Delete a pageflow rule.
-	 * 
-	 * @param rulePF
-	 */
-	public void deletePageflowRule(NavigationRuleType rulePF) {
-		NavigationCaseType casePF;
-		for (Iterator iterCasesPF = rulePF.getNavigationCase().iterator(); iterCasesPF
-				.hasNext();) {
-			casePF = (NavigationCaseType) iterCasesPF.next();
-			deletePageflowCase(casePF);
-		}
-	}
-
-	/**
-	 * Delete a pageflow case, the float node should be removed also.
-	 * 
-	 * @param rulePF
-	 */
-
-	public void deletePageflowCase(NavigationCaseType casePF) {
-		Object link = cases2LinksMap.get(casePF);
-		// if (link instanceof LinksBundle) {
-		// LinksBundle linkBundle = ((LinksBundle) link);
-		// if (!linkBundle.isPage2Page()) {
-		// removeLink(linkBundle.getFirst());
-		// PageflowNode sourcePage = linkBundle.getFirst().getSource();
-		// PageflowNode targetPage = linkBundle.getFirst().getTarget();
-		// // if it is float, remove it.
-		// removePageflowNode(sourcePage);
-		// removePageflowNode(targetPage);
-		// sourcePage.getPageflow().getLinks().remove(link);
-		// } else {
-		// removeLink(linkBundle.getFirst());
-		// removeLink(linkBundle.getSecond());
-		// PageflowNode action = linkBundle.getFirst().getTarget();
-		// if (action.getInlinks().size() == 0) {
-		// action.getPageflow().getLinks().remove(
-		// linkBundle.getSecond());
-		// }
-		// if (action.getOutlinks().size() == 0) {
-		// action.getPageflow().getLinks().remove(
-		// linkBundle.getFirst());
-		// }
-		// PageflowNode sourcePage = linkBundle.getFirst().getSource();
-		// PageflowNode targetPage = linkBundle.getSecond().getTarget();
-		// // if it is float, remove it.
-		// removePageflowNode(sourcePage);
-		// removePageflowNode(targetPage);
-		// removePageflowNode(action);
-		// }
-		// links2CasesMap.remove(linkBundle);
-		// }
-
-	}
-
-	// private boolean removePageflowNode(PageflowNode node) {
-	// if (node.getOutlinks().size() == 0 && node.getInlinks().size() == 0) {
-	// node.getPageflow().getNodes().remove(node);
-	// return true;
-	// }
-	// return false;
-	// }
-	//
-	// private void removeLink(PFLink link) {
-	// PageflowNode source = link.getSource();
-	// PageflowNode target = link.getTarget();
-	// source.getOutlinks().remove(link);
-	// target.getInlinks().remove(link);
-	// }
-	//
-	// /**
-	// * get the model creation factory of faces-config 1.0
-	// *
-	// * @return - the model creation factory of faces-config 1.0
-	// */
-	// private FacesConfigFactory getFacesConfigFactory() {
-	// return FacesConfigFactory.eINSTANCE;
-	// }
-
-	/**
-	 * check whether these two fromviewid is same or not.
-	 * 
-	 * @param fromViewID1
-	 * @param fromViewID2
-	 * @return
-	 */
-	// private boolean hasSameFromViewID(FromViewIdType fromViewID1,
-	// FromViewIdType fromViewID2) {
-	// String viewID1 = null;
-	// if (fromViewID1 == null) {
-	// viewID1 = "*";
-	// } else {
-	// viewID1 = fromViewID1.getTextContent().trim();
-	// }
-	//
-	// String viewID2 = null;
-	// if (fromViewID2 == null) {
-	// viewID2 = "*";
-	// } else {
-	// viewID2 = fromViewID2.getTextContent().trim();
-	// }
-	//
-	// if (viewID1.equalsIgnoreCase(viewID2)) {
-	// return true;
-	// }
-	// return false;
-	// }
-	/**
-	 * get or create a navigation rule
-	 * 
-	 * @param fromViewIdPath
-	 * @param navigationRulesInPageflow
-	 * @return
-	 */
-	// private NavigationRuleType getNavigationRule(String fromViewIdPath,
-	// List navigationRulesInPageflow) {
-	// // create or get a new navigation rule
-	// NavigationRuleType navigationRule = null;
-	//
-	// FacesConfigFactory factory = getFacesConfigFactory();
-	// // set the from-view-id
-	// FromViewIdType fromViewId = factory.createFromViewIdType();
-	// fromViewId.setTextContent(fromViewIdPath);
-	// // found the navigation rule with the same from-view-id
-	// boolean bFound = false;
-	// for (Iterator iter = navigationRulesInPageflow.iterator(); iter
-	// .hasNext()
-	// && !bFound;) {
-	// NavigationRuleType rule = (NavigationRuleType) iter.next();
-	// if (hasSameFromViewID(fromViewId, rule.getFromViewId())) {
-	// navigationRule = rule;
-	// bFound = true;
-	// }
-	// }
-	// // if not found, create a new one.
-	// if (!bFound) {
-	// // create a new navigation rule
-	// navigationRule = factory.createNavigationRuleType();
-	//
-	// // set the from-view-id
-	// FromViewIdType fromViewid = factory.createFromViewIdType();
-	// fromViewid.setTextContent(fromViewIdPath);
-	// navigationRule.setFromViewId(fromViewid);
-	//
-	// navigationRulesInPageflow.add(navigationRule);
-	// }
-	// return navigationRule;
-	// }
-	// private PFAction getOrCreateAction(NavigationCaseType caseFC, PFPage
-	// start,
-	// boolean oldRule) {
-	// PFAction pfAction = null;
-	// FromActionType action = caseFC.getFromAction();
-	// String actionPath = action.getTextContent();
-	// if (oldRule) {
-	// if (caseFC.getFromAction() != null) {
-	// // pfAction = (PFAction) mapPaths2PF.get(path);
-	// // try pageflow for valid action.
-	// if ((pfAction = findCaseAction(start, actionPath, pageflow)) == null) {
-	// System.out.println("Create a new action");
-	// pfAction = PageflowTransform.getInstance().createPFAction(
-	// action.getTextContent());
-	// newAction = true;
-	// Vector list = new Vector();
-	// list.add(action);
-	// mapPaths2PF.put(actionPath, pfAction);
-	// mapPaths2FC.put(actionPath, list);
-	// }
-	// }
-	// } else {
-	// System.out.println("new page, Create a new action");
-	// pfAction = PageflowTransform.getInstance().createPFAction(
-	// action.getTextContent());
-	// newAction = true;
-	// Vector list = new Vector();
-	// list.add(action);
-	// mapPaths2PF.put(actionPath, pfAction);
-	// mapPaths2FC.put(actionPath, list);
-	// }
-	// return pfAction;
-	// }
-	private PFPage getOrCreateStartPage(NavigationCaseType navCase) {// FromViewIdType
-		PFPage startPFNode = null;
+	private PageflowPage getOrCreateStartPage(NavigationCaseType navCase) {// FromViewIdType
+		PageflowPage startPageflowNode = null;
 		String path = "*";
 		NavigationRuleType rule = (NavigationRuleType) navCase.eContainer();
 		FromViewIdType source = getSource(navCase);
 		if (source != null) {
-			// ((CompatibilityXMIResource) source.eContainer().eResource())
-			// .setFormat(CompatibilityXMIResource.FORMAT_EMF1);
-			// uriSource = source.eContainer().eResource().getURIFragment(
-			// source.eContainer());
 			path = source.getTextContent();
 		}
-		if (!mapPaths2PF.containsKey(path)) {
-			startPFNode = findPage(path, pageflow);
+		if (!hasValidCache(path)) {
+			startPageflowNode = findPage(path, pageflow);
 
-			if (startPFNode == null) {
+			if (startPageflowNode == null) {
 				// not exist or is "*"
-				// System.out.println("Create new start page");
-				startPFNode = PageflowTransform.getInstance()
+				if (DEBUG)
+					System.out.println("Create new start page");
+				startPageflowNode = PageflowTransform.getInstance()
 						.createPFPage(path);
-				// PageflowTransform.getInstance().updatePageflowSourcePage(start,
-				// rule);
-				newSource = true;
+				pageflowChanged = true;
 			}
-			// FIXME: not only one!
-			// start.setReferenceLink(uriSource);
-			// mapLinks2PF.put(uriSource, start);
-			// start = PageflowTransform.getInstance().createPFPage(path);
-			// start.setReferenceLink("");
-			// mapLinks2URI.put(uriSource, path);
-			Vector list = new Vector();
-			list.add(source);
-			mapPaths2PF.put(path, startPFNode);
-			mapPaths2FC.put(path, list);
+			mapPaths2PF.put(path, startPageflowNode);
+			PageflowTransform.getInstance().updatePageflowSourcePage(
+					startPageflowNode, rule);
 		} else {
-			startPFNode = (PFPage) mapPaths2PF.get(path);
+			startPageflowNode = (PageflowPage) mapPaths2PF.get(path);
 		}
-		RefElement element = new RefElement(startPFNode.getReferenceLink());
-		element.add(source);
-		startPFNode.setReferenceLink(element.resolveReferenceString());
-		startPFNode.getFCElements().add(source);
-		startPFNode.setInitPath(path);
-		PageflowTransform.getInstance().updatePageflowSourcePage(startPFNode,
-				rule);
-		return startPFNode;
+		if (source != null) {
+			RefElement element = new RefElement(startPageflowNode);
+			element.add(source);
+			startPageflowNode
+					.setReferenceLink(element.resolveReferenceString());
+			startPageflowNode.getFCElements().add(source);
+		}
+		return startPageflowNode;
 	}
 
-	private PFPage getOrCreateEndPage(NavigationCaseType navCase) {// ToViewIdType
+	private boolean hasValidCache(Object key) {
+		EObject element = (EObject) mapPaths2PF.get(key);
+		boolean result = false;
+		while (element != null) {
+			if (element == pageflow) {
+				result = true;
+			}
+			element = element.eContainer();
+		}
+		return result;
+	}
+
+	private PageflowPage getOrCreateEndPage(NavigationCaseType navCase) {// ToViewIdType
 		// target) {
+		PageflowPage endPageflowNode = null;
 		ToViewIdType target = navCase.getToViewId();
 		if (target != null) {
 			String path = target.getTextContent();
-			PFPage endFCNode;
-			if (!mapPaths2PF.containsKey(path)) {
-				endFCNode = findPage(path, pageflow);
-				if (endFCNode == null) {
-					endFCNode = PageflowTransform.getInstance().createPFPage(
-							path);
-					// PageflowTransform.getInstance().updatePageflowTargetPage(end,
-					// navCase);
-					// System.out.println("Create new end page");
-					newTarget = true;
+			if (!hasValidCache(path)) {
+				endPageflowNode = findPage(path, pageflow);
+				if (endPageflowNode == null) {
+					endPageflowNode = PageflowTransform.getInstance()
+							.createPFPage(path);
+					if (DEBUG)
+						System.out.println("Create new end page");
+					pageflowChanged = true;
 				}
-				// FIXME: not only one!
-				mapPaths2PF.put(path, endFCNode);
-				// mapLinks2URI.put(uriTarget, path);
-				Vector list = new Vector();
-				list.add(target);
-				mapPaths2FC.put(path, list);
+				mapPaths2PF.put(path, endPageflowNode);
+				PageflowTransform.getInstance().updatePageflowTargetPage(
+						endPageflowNode, navCase);
 			} else {
-				endFCNode = (PFPage) mapPaths2PF.get(path);
+				endPageflowNode = (PageflowPage) mapPaths2PF.get(path);
 			}
-			RefElement element = new RefElement(endFCNode.getReferenceLink());
-			element.add(target);
-			endFCNode.setReferenceLink(element.resolveReferenceString());
-			endFCNode.getFCElements().add(target);
-			endFCNode.setInitPath(path);
-			PageflowTransform.getInstance().updatePageflowTargetPage(endFCNode,
-					navCase);
-			return endFCNode;
+			if (target != null) {
+				RefElement element = new RefElement(endPageflowNode);
+				element.add(target);
+				endPageflowNode.setReferenceLink(element
+						.resolveReferenceString());
+				endPageflowNode.getFCElements().add(target);
+			}
 		}
-		return null;
+		return endPageflowNode;
 	}
 
 	/**
@@ -473,150 +1017,155 @@
 	 * might be corresponding to: 1. Page-action-page. 2. Page-page. 3. *-page.
 	 * 4. ? page-action-action-page?
 	 */
-	public boolean createPFElements(Pageflow pageflow, NavigationCaseType caseFC) {
-		this.newSource = false;
-		this.newAction = false;
-		this.newTarget = false;
+	public boolean updatePageflowElements(Pageflow pageflow,
+			NavigationCaseType caseFC) {
+		this.pageflowChanged = false;
 		this.pageflow = pageflow;
 		ToViewIdType target = caseFC.getToViewId();
 		if (target == null) {
 			return false;
 		}
 
-		PFPage start = null, end = null;
-		// ------------------------------------start page ------------------
+		PageflowPage start = null, end = null;
+		// start page
 		start = getOrCreateStartPage(caseFC);
 		String action = null;
-		// -------------------------------action--------------------------
+		// action
 		if (caseFC.getFromAction() != null) {
 			action = caseFC.getFromAction().getTextContent();
 		}
-		// -------------------------------------from outcome ---------
+		// from outcome
 		String fromOutCome = null;
 		if (caseFC.getFromOutcome() != null) {
 			fromOutCome = caseFC.getFromOutcome().getTextContent();
 		}
-		// ---------------------------------------end page------------------
+		// end page
 		end = getOrCreateEndPage(caseFC);
-		// ----------------------link------------------------
+		// link
 		// Is there a link in pageflow model?
-		PFLink link = null;
-		if ((link = findLink(start, end, action, fromOutCome, caseFC)) == null) {
-			link = PageflowTransform.getInstance().createPFLink(start, end,
-					action, fromOutCome);
-			dirty = true;
+		PageflowLink link = null;
+		if ((link = findUnmappedLink(start, end, caseFC)) == null) {
+			if (end != null) {
+				if (DEBUG)
+					System.out.println("Create new link");
+				link = createPFLink(start, end, action, fromOutCome);
+				pageflowChanged = true;
+			}
 		}
-		RefElement element = new RefElement(link.getReferenceLink());
-		element.add(caseFC);
-		link.setReferenceLink(element.resolveReferenceString());
-		link.getFCElements().add(caseFC);
-		mapCases2Links.put(caseFC, link);
-		mapLinks2Cases.put(link, caseFC);
-		dirty |= newTarget | newAction | newSource;
-		return dirty;
+		if (link != null) {
+			link.getFCElements().clear();
+			link.getFCElements().add(caseFC);
+			mapCases2Links.put(caseFC, link);
+		}
+		adapt(start);
+		adapt(end);
+		adapt(caseFC);
+		adapt(link);
+		return pageflowChanged;
 	}
 
-	// private PFLink findUnusedLink(List secondLinks) {
-	// PFLink link = null;
-	// for (int i = 0; i < secondLinks.size(); i++) {
-	// CaseLink cLink = new CaseLink((PFLink) secondLinks.get(i));
-	// if (!mapLinks2Cases.containsKey(cLink)) {
-	// link = (PFLink) secondLinks.get(i);
-	// break;
-	// }
-	// }
-	// return link;
-	// }
-
-	// private PFLink createLink(PageflowNode start, PageflowNode target,
-	// String fromAction, String fromOutcome) {
-	// PFLink result = null;
-	// if (target instanceof PFPage) {
-	// if (start instanceof PFAction) {
-	// result = PageflowTransform.getInstance().createPFLink(start,
-	// target, fromOutcome);
-	// result.set
-	// } else if (start instanceof PFPage) {
-	// result = PageflowTransform.getInstance().createPFLink(start,
-	// target, fromOutcome);
-	// }
-	// }
-	// // Page -> action
-	// else {
-	// result = PageflowTransform.getInstance().createPFLink(
-	// start, target, fromOutcome);
-	// }
-	// }
-
-	// private PFLink findPage2PageLink(PFPage start, PFPage target,
-	// String fromOutCome) {
-	// List links = start.getOutlinks();
-	// for (int i = 0, n = links.size(); i < n; i++) {
-	// if ((((PFLink) links.get(i)).getOutcome() == null && fromOutCome == null)
-	// || (((PFLink) links.get(i)).getOutcome() != null
-	// && fromOutCome != null && ((PFLink) links.get(i))
-	// .getOutcome().equals(fromOutCome))) {
-	// if (target.getPath().equals(
-	// ((PFPage) ((PFLink) links.get(i)).getTarget())
-	// .getPath())) {
-	// return (PFLink) links.get(i);
-	// }
-	// }
-	// }
-	// return null;
-	// }
-
-	private PFLink findLink(PFPage start, PFPage end, String action,
-			String fromOutCome, NavigationCaseType caseFC) {
+	/**
+	 * Find a pageflow link that is not linked to a faces-config element. Since
+	 * user might edit faces-config file with other editor, so the path is not
+	 * always valid, here we still try to match link and navigation case. FIXME:
+	 * should we always resolve mapping from referenceLink on PageflowElement?
+	 */
+	private PageflowLink findUnmappedLink(PageflowPage start, PageflowPage end,
+			NavigationCaseType caseFC) {
+		// Assert.isTrue(!mapCases2Links.containsKey(caseFC));
 		List links = start.getOutlinks();
 		for (int i = 0, n = links.size(); i < n; i++) {
-			PFLink link = (PFLink) links.get(i);
-			if (link.getReferenceLink() != null
-					&& link.getReferenceLink().length() > 0) {
-				String ref = link.getReferenceLink();
-				RefElement element = new RefElement(ref);
-				if (element.getRefLinks().get(0).equals(
-						RefElement.resolveURI(caseFC)))
-					// if (isSame(link.getOutcome(), fromOutCome)
-					// && isSame(action, link.getFromaction())) {
-					if (end.getPath() != null
-							&& end.getPath().equals(
-									((PFPage) link.getTarget()).getPath())
-							&& !mapLinks2Cases.containsKey(link)) {
-						return link;
-					}
+			PageflowLink link = (PageflowLink) links.get(i);
+			if (link.getSource() == start && link.getTarget() == end) {
+				if (link.getFCElements().isEmpty()) {
+					// if (isSame(link.getFromaction(),
+					// (caseFC.getFromAction() != null ? caseFC
+					// .getFromAction().getTextContent() : null))
+					// && isSame(link.getOutcome(), (caseFC
+					// .getFromOutcome() != null ? caseFC
+					// .getFromOutcome().getTextContent() : null)))
+					// return link;
+					// } else {
+					return link;
+				}
 			}
 		}
 		return null;
 	}
 
-	private boolean isSame(String first, String second) {
+	private boolean isSame(Object first, Object second) {
 		return (first == null && second == null || first != null
 				&& second != null && first.equals(second));
 	}
 
-	// private PFLink findFirstLink(PFPage start, PFAction end) {
-	// List links = start.getOutlinks();
-	// for (int i = 0, n = links.size(); i < n; i++) {
-	// PFLink link = (PFLink) links.get(i);
-	// if (link.getSource() == start && link.getTarget() == end) {
-	// return link;
-	// }
-	// }
-	// return null;
-	// }
-
-	public FC2PFSynchronizer getFc2PFSynchronizer() {
-		if (fc2PFSynchronizer == null) {
-			fc2PFSynchronizer = new FC2PFSynchronizer(pageflow, facesConfig);
-		}
-		return fc2PFSynchronizer;
+	public FromViewIdType createRLFromViewID(String value) {
+		FromViewIdType fromView = FacesConfigFactory.eINSTANCE
+				.createFromViewIdType();
+		((FromViewIdType) fromView).setTextContent(value);
+		return fromView;
 	}
 
-	public PF2FCSynchronizer getPf2FCSynchronizer() {
-		if (pf2FCSynchronizer == null) {
-			pf2FCSynchronizer = new PF2FCSynchronizer(pageflow, facesConfig);
+	public PageflowLink createPFLink(PageflowNode start, PageflowNode target,
+			NavigationCaseType caseFC) {
+		PageflowLink link = null;
+		String fromOutcome = caseFC.getFromOutcome() != null ? caseFC
+				.getFromOutcome().getTextContent() : null;
+		String action = caseFC.getFromAction() != null ? caseFC.getFromAction()
+				.getTextContent() : null;
+		NavigationRuleType rule = (NavigationRuleType) caseFC.eContainer();
+		link = createPFLink(fromOutcome);
+		link.setFromaction(action);
+		link.setSource(start);
+		link.setTarget(target);
+		start.getOutlinks().add(link);
+		target.getInlinks().add(link);
+		// The reference.
+		link.getFCElements().add(caseFC);
+		start.getFCElements().add(rule.getFromViewId());
+		target.getFCElements().add(caseFC.getToViewId());
+		return link;
+	}
+
+	/**
+	 * create a new PFLink object according to fromOutcome attribute
+	 * 
+	 * @param fromOutcome -
+	 *            PFLink's fromOutcome attribute
+	 * @return - new PFLink object
+	 */
+	public PageflowLink createPFLink(PageflowNode start, PageflowNode target,
+			String action, String fromOutcome) {
+		Assert.isTrue(start != null && target != null);
+		PageflowLink link = null;
+		link = createPFLink(fromOutcome);
+		link.setFromaction(action);
+		link.setSource(start);
+		link.setTarget(target);
+		start.getOutlinks().add(link);
+		target.getInlinks().add(link);
+		return link;
+	}
+
+	/**
+	 * create a new PFLink object according to fromOutcome attribute
+	 * 
+	 * @param fromOutcome -
+	 *            PFLink's fromOutcome attribute
+	 * @return - new PFLink object
+	 */
+	public PageflowLink createPFLink(String fromOutcome) {
+		PageflowLink link = null;
+		link = PageflowModelManager.getFactory().createPFLink();
+		if (fromOutcome != null && fromOutcome.length() > 0) {
+			link.setOutcome(fromOutcome.trim());
 		}
-		return pf2FCSynchronizer;
+		pageflow.getLinks().add(link);
+		return link;
+	}
+
+	public ToViewIdType createFCToViewID(String value) {
+		ToViewIdType toView = FacesConfigFactory.eINSTANCE.createToViewIdType();
+		toView.setTextContent(value);
+		return toView;
 	}
 }
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/synchronization/Link2CaseTransformer.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/synchronization/Link2CaseTransformer.java
new file mode 100644
index 0000000..9700752
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/synchronization/Link2CaseTransformer.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2006 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.synchronization;
+
+/**
+ * @author hmeng
+ */
+
+public class Link2CaseTransformer {
+	public void createNewLink() {
+
+	}
+
+	public void createNewCase() {
+
+	}
+
+	public void removeLink() {
+	};
+
+	public void removeCase() {
+	};
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/synchronization/Page2ViewIDTransformer.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/synchronization/Page2ViewIDTransformer.java
new file mode 100644
index 0000000..df7118b
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/synchronization/Page2ViewIDTransformer.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2006 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.synchronization;
+
+/**
+ * @author hmeng
+ */
+
+public class Page2ViewIDTransformer {
+	public void createNewFromViewID() {
+	};
+
+	public void createNewToViewID() {
+	};
+
+	public void removeFromViewID() {
+	};
+
+	public void removeToViewID() {
+	};
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/synchronization/RefElement.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/synchronization/RefElement.java
index d7c836a..def47a0 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/synchronization/RefElement.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/synchronization/RefElement.java
@@ -6,10 +6,15 @@
 package org.eclipse.jst.jsf.facesconfig.ui.pageflow.synchronization;
 
 import java.util.ArrayList;
+import java.util.Iterator;
 import java.util.List;
-import java.util.StringTokenizer;
 
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jst.jsf.facesconfig.emf.FromViewIdType;
+import org.eclipse.jst.jsf.facesconfig.emf.NavigationCaseType;
+import org.eclipse.jst.jsf.facesconfig.emf.NavigationRuleType;
+import org.eclipse.jst.jsf.facesconfig.emf.ToViewIdType;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowElement;
 import org.eclipse.wst.common.internal.emf.resource.CompatibilityXMIResource;
 
 /**
@@ -20,29 +25,56 @@
  * 
  */
 public class RefElement {
-	private List elements = new ArrayList();
 
-	public RefElement(String reference) {
-		reset(reference);
+	private List data = new ArrayList();
+
+	private PageflowElement pageflowElement;
+
+	public RefElement(PageflowElement pageflowElement) {
+		this.pageflowElement = pageflowElement;
 	}
 
+	public RefElement(PageflowElement pageflowElement, EObject facesConfigObject) {
+		this(pageflowElement);
+		this.add(facesConfigObject);
+	}
+
+	/**
+	 * Add object to the list.
+	 * 
+	 * @param object
+	 */
 	public void add(EObject object) {
-		String resolveString = resolveURI(object);
-		if (!elements.contains(resolveString)) {
-			elements.add(resolveString);
+		if (!data.contains(object)) {
+			data.add(object);
+			// pageflowElement.notifyModelChanged(new ENotificationImpl(
+			// (PageflowElementImpl) pageflowElement,
+			// NotificationImpl.SET,
+			// PageflowPackage.PAGEFLOW__REFERENCE_LINK, null, null));
 		}
 	}
 
 	public void clear() {
-		elements.clear();
+		if (!data.isEmpty()) {
+			data.clear();
+			// pageflowElement.notifyModelChanged(new ENotificationImpl(
+			// (PageflowElementImpl) pageflowElement,
+			// NotificationImpl.SET,
+			// PageflowPackage.PAGEFLOW__REFERENCE_LINK, null, null));
+		}
 	}
 
 	public boolean contains(EObject object) {
-		String resolveString = resolveURI(object);
-		return elements.contains(resolveString);
+		return data.contains(object);
 	}
 
-	public static String resolveURI(EObject object) {
+	/**
+	 * The fragment path of a node.
+	 * 
+	 * @param object
+	 * @return
+	 */
+	public static String resolvePath(EObject object) {
 		if (object != null) {
 			((CompatibilityXMIResource) object.eResource())
 					.setFormat(CompatibilityXMIResource.FORMAT_EMF1);
@@ -53,15 +85,22 @@
 		}
 	}
 
-	public void remove(EObject object) {
-		String resolveString = resolveURI(object);
-		elements.remove(resolveString);
+	public boolean remove(EObject object) {
+		boolean result = data.remove(object);
+		if (result) {
+			// pageflowElement.notifyModelChanged(new ENotificationImpl(
+			// (PageflowElementImpl) pageflowElement,
+			// NotificationImpl.SET,
+			// PageflowPackage.PAGEFLOW__REFERENCE_LINK, null, null));
+
+		}
+		return result;
 	}
 
 	public String resolveReferenceString() {
 		String result = "";
-		for (int i = 0, n = elements.size(); i < n; i++) {
-			result += (String) elements.get(i) + "|";
+		for (int i = 0, n = data.size(); i < n; i++) {
+			result += resolvePath((EObject) data.get(i)) + "|";
 		}
 		if (result.length() > 0) {
 			result = result.substring(0, result.length());
@@ -69,14 +108,39 @@
 		return result;
 	}
 
-	public void reset(String referenceString) {
-		StringTokenizer token = new StringTokenizer(referenceString, "|");
-		while (token.hasMoreTokens()) {
-			elements.add(token.nextElement());
+	public List getPaths() {
+		List paths = new ArrayList();
+		for (int i = 0, n = data.size(); i < n; i++) {
+			paths.add(resolvePath((EObject) data.get(i)));
 		}
+		return paths;
 	}
 
-	public List getRefLinks() {
-		return elements;
+	public List getData() {
+		return data;
+	}
+
+	public boolean isEmpty() {
+		return data.isEmpty();
+	}
+
+	/**
+	 * Update when faces-config is modified.
+	 * 
+	 */
+	public void update() {
+		for (Iterator nodes = data.iterator(); nodes.hasNext();) {
+			Object next = nodes.next();
+			if (next instanceof FromViewIdType
+					|| next instanceof NavigationCaseType) {
+				if (!(((EObject) next).eContainer() instanceof NavigationRuleType)) {
+					nodes.remove();
+				}
+			} else if (next instanceof ToViewIdType) {
+				if (!(((EObject) next).eContainer() instanceof NavigationCaseType)) {
+					nodes.remove();
+				}
+			}
+		}
 	}
 }
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/FacesConfigModelAdapter.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/FacesConfigModelAdapter.java
index 90e7c98..5fcae03 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/FacesConfigModelAdapter.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/FacesConfigModelAdapter.java
@@ -503,9 +503,8 @@
 			// // PageflowLayoutManager.getInstance().updatePageflowLayout(
 			// // pageflow, pageflowManager.getModel());
 			// }
-			return pageflow;
 		}
-		return null;
+		return pageflow;
 	}
 
 	/**
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/FacesConfigUtil.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/FacesConfigUtil.java
index a6d9c5e..1743a38 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/FacesConfigUtil.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/FacesConfigUtil.java
@@ -16,7 +16,6 @@
 import java.util.List;
 
 import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.Path;
@@ -30,7 +29,7 @@
  */
 public class FacesConfigUtil {
 	/** the singleton instance of face-config files manager */
-	private static ConfigurationManager facesConfigManager;
+//	private static ConfigurationManager facesConfigManager;
 
 	// private static final Logger log = EditorPlugin
 	// .getLogger(FacesConfigUtil.class);
@@ -194,16 +193,16 @@
 	 * 
 	 * @return - configuration manager.
 	 */
-	public static ConfigurationManager getConfigurationManager(IProject project) {
-		if (facesConfigManager == null) {
-			facesConfigManager = new ConfigurationManager(project);
-		}
-
-		facesConfigManager.loadConfiguration(project);
-		// facesConfigManager.deriveManagedBeans();
-
-		return facesConfigManager;
-	}
+//	public static ConfigurationManager getConfigurationManager(IProject project) {
+//		if (facesConfigManager == null) {
+//			facesConfigManager = new ConfigurationManager(project);
+//		}
+//
+//		facesConfigManager.loadConfiguration(project);
+//		// facesConfigManager.deriveManagedBeans();
+//
+//		return facesConfigManager;
+//	}
 
 	// public static void addXMLNavigationRuleFromEMFModel(IStructuredModel
 	// model,
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/ModelCreationFactory.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/ModelCreationFactory.java
index 397ad8e..655b4c6 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/ModelCreationFactory.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/ModelCreationFactory.java
@@ -13,8 +13,8 @@
 package org.eclipse.jst.jsf.facesconfig.ui.pageflow.util;
 
 import org.eclipse.gef.requests.CreationFactory;
-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.PageflowLink;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPage;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowFactory;
 
 /**
@@ -40,10 +40,10 @@
 
 		Object result = null;
 
-		if (targetClass.equals(PFLink.class)) {
+		if (targetClass.equals(PageflowLink.class)) {
 			result = factory.createPFLink();
 
-		} else if (targetClass.equals(PFPage.class)) {
+		} else if (targetClass.equals(PageflowPage.class)) {
 			result = factory.createPFPage();
 		}
 
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/PageflowAdapterFactory.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/PageflowAdapterFactory.java
index a4a5792..d2431d6 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/PageflowAdapterFactory.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/PageflowAdapterFactory.java
@@ -16,9 +16,9 @@
 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.facesconfig.ui.pageflow.model.PFLink;
-import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLinkBendpoint;
-import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFPage;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLinkBendpoint;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPage;
 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;
@@ -86,7 +86,7 @@
 			return createPageflowNodeAdapter();
 		}
 
-		public Object casePFLink(PFLink object) {
+		public Object casePFLink(PageflowLink object) {
 			return createPFLinkAdapter();
 		}
 
@@ -94,11 +94,11 @@
 			return createPageflowElementAdapter();
 		}
 
-		public Object casePFPage(PFPage object) {
+		public Object casePFPage(PageflowPage object) {
 			return createPFPageAdapter();
 		}
 
-		public Object casePFLinkBendpoint(PFLinkBendpoint object) {
+		public Object casePFLinkBendpoint(PageflowLinkBendpoint object) {
 			return createPFLinkBendpointAdapter();
 		}
 
@@ -149,13 +149,13 @@
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLink <em>PF Link</em>}'.
+	 * Creates a new adapter for an object of class '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink <em>PF Link</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.facesconfig.ui.pageflow.model.PFLink
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink
 	 * @generated
 	 */
 	public Adapter createPFLinkAdapter() {
@@ -191,13 +191,13 @@
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFPage <em>PF Page</em>}'.
+	 * Creates a new adapter for an object of class '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPage <em>PF Page</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.facesconfig.ui.pageflow.model.PFPage
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPage
 	 * @generated
 	 */
 	public Adapter createPFPageAdapter() {
@@ -233,13 +233,13 @@
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFLinkBendpoint <em>PF Link Bendpoint</em>}'.
+	 * Creates a new adapter for an object of class '{@link org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLinkBendpoint <em>PF Link Bendpoint</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.facesconfig.ui.pageflow.model.PFLinkBendpoint
+	 * @see org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLinkBendpoint
 	 * @generated
 	 */
 	public Adapter createPFLinkBendpointAdapter() {
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/PageflowAnnotationUtil.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/PageflowAnnotationUtil.java
index a181275..8760eeb 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/PageflowAnnotationUtil.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/PageflowAnnotationUtil.java
@@ -17,11 +17,11 @@
 import org.eclipse.gef.GraphicalEditPart;
 import org.eclipse.jface.text.source.Annotation;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.editpart.IAnnotationEditPart;
-import org.eclipse.jst.jsf.facesconfig.ui.pageflow.editpart.PFLinkEditPart;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.editpart.PageflowLinkEditPart;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.editpart.PageflowElementEditPart;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.editpart.PageflowNodeEditPart;
-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.PageflowLink;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPage;
 
 /**
  * This class can be used to add annotation for the current pageflow model and
@@ -55,9 +55,9 @@
 					.next();
 			String errorMessage = null;
 
-			if (element.getModel() instanceof PFPage) {
+			if (element.getModel() instanceof PageflowPage) {
 				errorMessage = PageflowValidation.getInstance().isValidPage(
-						(PFPage) element.getModel());
+						(PageflowPage) element.getModel());
 			}
 
 			if (errorMessage != null) {
@@ -69,7 +69,7 @@
 			// validate the connections.
 			Iterator iterLinks = element.getSourceConnections().iterator();
 			while (iterLinks.hasNext()) {
-				PFLinkEditPart link = (PFLinkEditPart) iterLinks.next();
+				PageflowLinkEditPart link = (PageflowLinkEditPart) iterLinks.next();
 
 				validateLink(link);
 			}
@@ -93,7 +93,7 @@
 		removeAnnotation(pagePart);
 
 		errorMessage = PageflowValidation.getInstance().isValidPage(
-				(PFPage) pagePart.getModel());
+				(PageflowPage) pagePart.getModel());
 
 		if (errorMessage != null) {
 			addAnnotation(pagePart, errorMessage);
@@ -102,7 +102,7 @@
 		// validate the connections.
 		Iterator iterLinks = pagePart.getSourceConnections().iterator();
 		while (iterLinks.hasNext()) {
-			PFLinkEditPart link = (PFLinkEditPart) iterLinks.next();
+			PageflowLinkEditPart link = (PageflowLinkEditPart) iterLinks.next();
 
 			validateLink(link);
 		}
@@ -114,14 +114,14 @@
 	 * @param linkPart -
 	 *            it can be null, then the edit part will not be updated
 	 */
-	public static void validateLink(PFLinkEditPart linkPart) {
+	public static void validateLink(PageflowLinkEditPart linkPart) {
 		if (linkPart != null) {
 			String errorMessage = null;
 
 			removeAnnotation(linkPart);
 
 			errorMessage = PageflowValidation.getInstance().isValidLink(
-					(PFLink) linkPart.getModel());
+					(PageflowLink) linkPart.getModel());
 
 			if (errorMessage != null) {
 				addAnnotation(linkPart, errorMessage);
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/PageflowModelManager.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/PageflowModelManager.java
index 407bcad..9c74126 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/PageflowModelManager.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/PageflowModelManager.java
@@ -26,7 +26,7 @@
 import org.eclipse.emf.ecore.resource.ResourceSet;
 import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
 import org.eclipse.emf.ecore.xmi.XMLResource;
-import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFPage;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPage;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.Pageflow;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowFactory;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowNode;
@@ -235,16 +235,16 @@
 	 * @param webPath
 	 * @return
 	 */
-	public PFPage foundPage(String webPath) {
-		PFPage page = null;
+	public PageflowPage foundPage(String webPath) {
+		PageflowPage page = null;
 
 		if (getModel() != null) {
 			Iterator iterNodes = getModel().getNodes().iterator();
 			while (iterNodes.hasNext()) {
 				PageflowNode node = (PageflowNode) iterNodes.next();
-				if (node instanceof PFPage) {
-					if (((PFPage) node).getPath().equalsIgnoreCase(webPath)) {
-						page = (PFPage) node;
+				if (node instanceof PageflowPage) {
+					if (((PageflowPage) node).getPath().equalsIgnoreCase(webPath)) {
+						page = (PageflowPage) node;
 						break;
 					}
 				}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/PageflowResourceFactory.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/PageflowResourceFactory.java
index 67ab9d4..8505a58 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/PageflowResourceFactory.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/PageflowResourceFactory.java
@@ -15,7 +15,7 @@
 import org.eclipse.core.resources.IResource;
 import org.eclipse.gef.requests.CreationFactory;
 import org.eclipse.jst.jsf.facesconfig.ui.EditorPlugin;
-import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PFPage;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPage;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowFactory;
 import org.eclipse.jst.jsf.facesconfig.ui.util.WebrootUtil;
 
@@ -47,7 +47,7 @@
 		if (strWebPath.length() > 0) {
 			PageflowFactory factory = PageflowModelManager.getFactory();
 			Object result = factory.createPFPage();
-			PFPage page = (PFPage) result;
+			PageflowPage page = (PageflowPage) result;
 			page.setPath(strWebPath);
 			page.setName(WebrootUtil.getPageNameFromWebPath(strWebPath));
 			return page;
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/PageflowSwitch.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/PageflowSwitch.java
index d05a436..f4df38b 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/PageflowSwitch.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/PageflowSwitch.java
@@ -15,9 +15,9 @@
 
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EObject;
-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.PFPage;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLinkBendpoint;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPage;
 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;
@@ -107,7 +107,7 @@
 			return result;
 		}
 		case PageflowPackage.PF_LINK: {
-			PFLink pfLink = (PFLink) theEObject;
+			PageflowLink pfLink = (PageflowLink) theEObject;
 			Object result = casePFLink(pfLink);
 			if (result == null)
 				result = casePageflowElement(pfLink);
@@ -117,7 +117,7 @@
 		}
 
 		case PageflowPackage.PF_PAGE: {
-			PFPage pfPage = (PFPage) theEObject;
+			PageflowPage pfPage = (PageflowPage) theEObject;
 			Object result = casePFPage(pfPage);
 			if (result == null)
 				result = casePageflowNode(pfPage);
@@ -129,7 +129,7 @@
 		}
 
 		case PageflowPackage.PF_LINK_BENDPOINT: {
-			PFLinkBendpoint pfLinkBendpoint = (PFLinkBendpoint) theEObject;
+			PageflowLinkBendpoint pfLinkBendpoint = (PageflowLinkBendpoint) theEObject;
 			Object result = casePFLinkBendpoint(pfLinkBendpoint);
 			if (result == null)
 				result = defaultCase(theEObject);
@@ -181,7 +181,7 @@
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public Object casePFLink(PFLink object) {
+	public Object casePFLink(PageflowLink object) {
 		return null;
 	}
 
@@ -211,7 +211,7 @@
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public Object casePFPage(PFPage object) {
+	public Object casePFPage(PageflowPage object) {
 		return null;
 	}
 
@@ -226,7 +226,7 @@
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public Object casePFLinkBendpoint(PFLinkBendpoint object) {
+	public Object casePFLinkBendpoint(PageflowLinkBendpoint object) {
 		return null;
 	}
 
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/PageflowTransform.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/PageflowTransform.java
index 47a963e..2c90b4f 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/PageflowTransform.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/PageflowTransform.java
@@ -26,11 +26,11 @@
 import org.eclipse.jst.jsf.facesconfig.emf.NavigationCaseType;
 import org.eclipse.jst.jsf.facesconfig.emf.NavigationRuleType;
 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.PageflowFactory;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowNode;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPage;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.synchronization.FC2PFTransformer;
 import org.eclipse.jst.jsf.facesconfig.ui.util.WebrootUtil;
 import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
@@ -402,7 +402,7 @@
 	 * @param navigationRuleFC
 	 * @author sfshi
 	 */
-	public void updatePageflowSourcePage(PFPage sourcePage,
+	public void updatePageflowSourcePage(PageflowPage sourcePage,
 			NavigationRuleType navigationRuleFC) {
 		// set the descriiption of link
 		if (navigationRuleFC.getDescription() != null
@@ -451,7 +451,7 @@
 	 * @param navigationCaseFC
 	 * @author sfshi
 	 */
-	public void updatePageflowTargetPage(PFPage targetPage,
+	public void updatePageflowTargetPage(PageflowPage targetPage,
 			NavigationCaseType navigationCaseFC) {
 		// set the descriiption of link
 		if (navigationCaseFC.getDescription() != null
@@ -1124,7 +1124,7 @@
 		if (rulesFC == null || rulesFC.isEmpty()) {
 			for (Iterator iterLink = pageflow.getLinks().iterator(); iterLink
 					.hasNext();) {
-				PFLink link = (PFLink) iterLink.next();
+				PageflowLink link = (PageflowLink) iterLink.next();
 				link.getSource().getOutlinks().remove(link);
 				link.getTarget().getInlinks().remove(link);
 			}
@@ -1142,8 +1142,8 @@
 						.hasNext();) {
 					NavigationCaseType navigationCaseFC = (NavigationCaseType) iterCasesFC
 							.next();
-					isNew |= FC2PFTransformer.getInstance().createPFElements(
-							pageflow, navigationCaseFC);
+					isNew |= FC2PFTransformer.getInstance()
+							.updatePageflowElements(pageflow, navigationCaseFC);
 				}
 			}
 		}
@@ -1156,19 +1156,16 @@
 		List links = pageflow.getLinks();
 		Iterator linksIterator = links.iterator();
 		while (linksIterator.hasNext()) {
-			PFLink link = (PFLink) linksIterator.next();
-			if (link.getTarget() instanceof PFPage) {
-				if (!FC2PFTransformer.getInstance().getMapLinks2Cases()
-						.containsKey(link)) {
-					linksIterator.remove();
-					if (link.getSource() != null) {
-						link.getSource().getOutlinks().remove(link);
-					}
-					if (link.getTarget() != null) {
-						link.getTarget().getInlinks().remove(link);
-					}
-					dirty = true;
+			PageflowLink link = (PageflowLink) linksIterator.next();
+			if (link.getFCElements().isEmpty()) {
+				linksIterator.remove();
+				if (link.getSource() != null) {
+					link.getSource().getOutlinks().remove(link);
 				}
+				if (link.getTarget() != null) {
+					link.getTarget().getInlinks().remove(link);
+				}
+				dirty = true;
 			}
 		}
 		return dirty;
@@ -1418,8 +1415,8 @@
 	 *            page's from-view-id
 	 * @return
 	 */
-	public PFPage createPFPage(String fromViewID) {
-		PFPage page = getPageflowFactory().createPFPage();
+	public PageflowPage createPFPage(String fromViewID) {
+		PageflowPage page = getPageflowFactory().createPFPage();
 		if (fromViewID != null && fromViewID.length() > 0) {
 			page.setPath(fromViewID.trim());
 			page.setName(WebrootUtil.getPageNameFromWebPath(fromViewID.trim()));
@@ -1446,46 +1443,6 @@
 	// return action;
 	// }
 	/**
-	 * create a new PFLink object according to fromOutcome attribute
-	 * 
-	 * @param fromOutcome -
-	 *            PFLink's fromOutcome attribute
-	 * @return - new PFLink object
-	 */
-	public PFLink createPFLink(String fromOutcome) {
-		PFLink link = null;
-		link = getPageflowFactory().createPFLink();
-		if (fromOutcome != null && fromOutcome.length() > 0) {
-			link.setOutcome(fromOutcome.trim());
-		}
-		pageflow.getLinks().add(link);
-		return link;
-	}
-
-	/**
-	 * create a new PFLink object according to fromOutcome attribute
-	 * 
-	 * @param fromOutcome -
-	 *            PFLink's fromOutcome attribute
-	 * @return - new PFLink object
-	 */
-	public PFLink createPFLink(PageflowNode start, PageflowNode target,
-			String action, String fromOutcome) {
-		PFLink link = null;
-		link = createPFLink(fromOutcome);
-		link.setFromaction(action);
-		link.setSource(start);
-		link.setTarget(target);
-		if (start != null) {
-			start.getOutlinks().add(link);
-		}
-		if (target != null) {
-			target.getInlinks().add(link);
-		}
-		return link;
-	}
-
-	/**
 	 * find an existing PFLink object according to source and target
 	 * 
 	 * @param source -
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/PageflowValidation.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/PageflowValidation.java
index 3e65aaf..34d1843 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/PageflowValidation.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/PageflowValidation.java
@@ -19,8 +19,8 @@
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.Path;
 import org.eclipse.jst.jsf.facesconfig.ui.EditorResources;
-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.PageflowLink;
+import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPage;
 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.util.WebrootUtil;
@@ -84,7 +84,7 @@
 	 * @return - valid link or not.
 	 * 
 	 */
-	public boolean isValidLinkForProperty(PFLink link) {
+	public boolean isValidLinkForProperty(PageflowLink link) {
 		return true;
 	}
 
@@ -96,7 +96,7 @@
 	 * @return - valid link or not.
 	 * 
 	 */
-	public boolean isValidLinkForNavigationRule(PFLink link) {
+	public boolean isValidLinkForNavigationRule(PageflowLink link) {
 		return true;
 	}
 
@@ -107,21 +107,21 @@
 	 * @return - valid link or not.
 	 * 
 	 */
-	public String isValidLink(PFLink link) {
+	public String isValidLink(PageflowLink link) {
 		String errorMessage = null;
 		// action-page style
 		// TODO: it should guarantee that outcome should be defined in the
 		// managed bean's method.
 
-		if (link.getSource() instanceof PFPage
-				&& link.getTarget() instanceof PFPage) {
+		if (link.getSource() instanceof PageflowPage
+				&& link.getTarget() instanceof PageflowPage) {
 			String outcome = link.getOutcome();
 			if (outcome != null && outcome.length() >= 0) {
 				// if (isValidServiceOutcome(outcome))
 				// {
 				// return errorMessage;
 				// }
-				String webPath = ((PFPage) link.getSource()).getPath();
+				String webPath = ((PageflowPage) link.getSource()).getPath();
 				if (webPath != null) {
 					String projectPath = WebrootUtil.getProjectPath(link,
 							webPath);
@@ -157,7 +157,7 @@
 	 * @param page
 	 * @return
 	 */
-	public boolean isExistedPage(Pageflow pageflow, PFPage page) {
+	public boolean isExistedPage(Pageflow pageflow, PageflowPage page) {
 		if (pageflow == null || page == null || page.getPath() == null) {
 			return false;
 		}
@@ -182,9 +182,9 @@
 		while (iter.hasNext()) {
 			PageflowNode existedNode = (PageflowNode) iter.next();
 
-			if (existedNode instanceof PFPage) {
-				if (((PFPage) existedNode).getPath() != null
-						&& ((PFPage) existedNode).getPath().equalsIgnoreCase(
+			if (existedNode instanceof PageflowPage) {
+				if (((PageflowPage) existedNode).getPath() != null
+						&& ((PageflowPage) existedNode).getPath().equalsIgnoreCase(
 								pagePath)) {
 					return true;
 				}
@@ -203,7 +203,7 @@
 	 * @param element
 	 * @return
 	 */
-	public String isValidPage(PFPage page) {
+	public String isValidPage(PageflowPage page) {
 		String errorMessage = null;
 		IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
 		String pagePath = page.getPath();
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/section/OverviewComponentsSection.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/section/OverviewComponentsSection.java
index 21ee7f2..f1f33b9 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/section/OverviewComponentsSection.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/section/OverviewComponentsSection.java
@@ -17,7 +17,7 @@
 import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.jface.viewers.ViewerFilter;
 import org.eclipse.jst.jsf.facesconfig.emf.FacesConfigPackage;
-import org.eclipse.jst.jsf.facesconfig.ui.EditorResourcesNLS;
+import org.eclipse.jst.jsf.facesconfig.ui.NewEditorResourcesNLS;
 import org.eclipse.jst.jsf.facesconfig.ui.page.ComponentsPage;
 import org.eclipse.jst.jsf.facesconfig.ui.page.IFacesConfigPage;
 import org.eclipse.swt.SWT;
@@ -44,8 +44,8 @@
 	public OverviewComponentsSection(Composite parent,
 			IManagedForm managedForm, IFacesConfigPage page, FormToolkit toolkit) {
 		super(parent, managedForm, page, toolkit, ComponentsPage.PAGE_ID,
-				EditorResourcesNLS.OverviewPage_ComponentsSection_name,
-				EditorResourcesNLS.OverviewPage_ComponentsSection_description,
+				NewEditorResourcesNLS.OverviewPage_ComponentsSection_name,
+				NewEditorResourcesNLS.OverviewPage_ComponentsSection_description,
 				null, null);
 	}
 
@@ -93,13 +93,13 @@
 		TableColumn typecol = new TableColumn(table, SWT.LEFT);
 		tablelayout.addColumnData(new ColumnWeightData(1, true));
 		typecol
-				.setText(EditorResourcesNLS.OverviewPage_ComponentsSection_table_typecol);
+				.setText(NewEditorResourcesNLS.OverviewPage_ComponentsSection_table_typecol);
 		typecol.setResizable(true);
 
 		TableColumn namecol = new TableColumn(table, SWT.LEFT);
 		tablelayout.addColumnData(new ColumnWeightData(1, true));
 		namecol
-				.setText(EditorResourcesNLS.OverviewPage_ComponentsSection_table_namecol);
+				.setText(NewEditorResourcesNLS.OverviewPage_ComponentsSection_table_namecol);
 		namecol.setResizable(true);
 
 		return table;
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/section/OverviewGeneralSection.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/section/OverviewGeneralSection.java
index 37f0b71..e0f0edb 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/section/OverviewGeneralSection.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/section/OverviewGeneralSection.java
@@ -12,8 +12,7 @@
 package org.eclipse.jst.jsf.facesconfig.ui.section;
 
 import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jst.jsf.facesconfig.emf.FacesConfigType;
-import org.eclipse.jst.jsf.facesconfig.ui.EditorResourcesNLS;
+import org.eclipse.jst.jsf.facesconfig.ui.NewEditorResourcesNLS;
 import org.eclipse.jst.jsf.facesconfig.ui.page.IFacesConfigPage;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.layout.GridData;
@@ -44,9 +43,9 @@
 		super(parent, managedForm, page, toolkit, null, null);
 
 		getSection().setText(
-				EditorResourcesNLS.OverviewPage_GeneralSection_name); //$NON-NLS-1$
+				NewEditorResourcesNLS.OverviewPage_GeneralSection_name); //$NON-NLS-1$
 		getSection().setDescription(
-				EditorResourcesNLS.OverviewPage_GeneralSection_description); //$NON-NLS-1$
+				NewEditorResourcesNLS.OverviewPage_GeneralSection_description); //$NON-NLS-1$
 	}
 
 	/*
@@ -63,14 +62,14 @@
 		IEditorInput editorInput = this.getPage().getEditor().getEditorInput();
 
 		toolkit.createLabel(container,
-				EditorResourcesNLS.OverviewPage_GeneralSection_label_name); //$NON-NLS-1$ 	 
+				NewEditorResourcesNLS.OverviewPage_GeneralSection_label_name); //$NON-NLS-1$ 	 
 		Text typeText = toolkit.createText(container, ((FileEditorInput)editorInput).getName());
 		typeText.setEditable(false);
 		GridData data = new GridData(GridData.FILL_HORIZONTAL);
 		typeText.setLayoutData(data);
 
 		toolkit.createLabel(container,
-				EditorResourcesNLS.OverviewPage_GeneralSection_label_version); //$NON-NLS-1$
+				NewEditorResourcesNLS.OverviewPage_GeneralSection_label_version); //$NON-NLS-1$
 		versionText = toolkit.createText(container, "");
 		versionText.setLayoutData(data);
 		versionText.setEditable(false);
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/section/OverviewManagedBeanSection.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/section/OverviewManagedBeanSection.java
index ed550cb..b4d0f35 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/section/OverviewManagedBeanSection.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/section/OverviewManagedBeanSection.java
@@ -17,7 +17,7 @@
 import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.jface.viewers.ViewerFilter;
 import org.eclipse.jst.jsf.facesconfig.emf.FacesConfigPackage;
-import org.eclipse.jst.jsf.facesconfig.ui.EditorResourcesNLS;
+import org.eclipse.jst.jsf.facesconfig.ui.NewEditorResourcesNLS;
 import org.eclipse.jst.jsf.facesconfig.ui.page.IFacesConfigPage;
 import org.eclipse.jst.jsf.facesconfig.ui.page.ManagedBeanPage;
 import org.eclipse.swt.SWT;
@@ -46,8 +46,8 @@
 	public OverviewManagedBeanSection(Composite parent,
 			IManagedForm managedForm, IFacesConfigPage page, FormToolkit toolkit) {
 		super(parent, managedForm, page, toolkit, ManagedBeanPage.PAGE_ID,
-				EditorResourcesNLS.OverviewPage_ManagedBeanSection_name,
-				EditorResourcesNLS.OverviewPage_ManagedBeanSection_description,
+				NewEditorResourcesNLS.OverviewPage_ManagedBeanSection_name,
+				NewEditorResourcesNLS.OverviewPage_ManagedBeanSection_description,
 				null, null);
 
 	}
@@ -89,19 +89,19 @@
 
 		TableColumn namecol = new TableColumn(table, SWT.LEFT);
 		namecol
-				.setText(EditorResourcesNLS.OverviewPage_ManagedBeanSection_table_namecol);
+				.setText(NewEditorResourcesNLS.OverviewPage_ManagedBeanSection_table_namecol);
 		tablelayout.addColumnData(new ColumnWeightData(1, true));
 		namecol.setResizable(true);
 
 		TableColumn scopecol = new TableColumn(table, SWT.LEFT);
 		scopecol
-				.setText(EditorResourcesNLS.OverviewPage_ManagedBeanSection_table_scopecol);
+				.setText(NewEditorResourcesNLS.OverviewPage_ManagedBeanSection_table_scopecol);
 		tablelayout.addColumnData(new ColumnWeightData(1, true));
 		scopecol.setResizable(true);
 
 		TableColumn classcol = new TableColumn(table, SWT.LEFT);
 		classcol
-				.setText(EditorResourcesNLS.OverviewPage_ManagedBeanSection_table_classcol);
+				.setText(NewEditorResourcesNLS.OverviewPage_ManagedBeanSection_table_classcol);
 		tablelayout.addColumnData(new ColumnWeightData(1, true));
 		classcol.setResizable(true);
 
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/section/OverviewNavigationSection.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/section/OverviewNavigationSection.java
index 40b06ad..0908bd1 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/section/OverviewNavigationSection.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/section/OverviewNavigationSection.java
@@ -31,7 +31,7 @@
 import org.eclipse.jst.jsf.facesconfig.emf.FacesConfigType;
 import org.eclipse.jst.jsf.facesconfig.emf.NavigationCaseType;
 import org.eclipse.jst.jsf.facesconfig.emf.NavigationRuleType;
-import org.eclipse.jst.jsf.facesconfig.ui.EditorResourcesNLS;
+import org.eclipse.jst.jsf.facesconfig.ui.NewEditorResourcesNLS;
 import org.eclipse.jst.jsf.facesconfig.ui.page.IFacesConfigPage;
 import org.eclipse.jst.jsf.facesconfig.ui.pageflow.PageflowEditor;
 import org.eclipse.swt.SWT;
@@ -63,8 +63,8 @@
 	public OverviewNavigationSection(Composite parent,
 			IManagedForm managedForm, IFacesConfigPage page, FormToolkit toolkit) {
 		super(parent, managedForm, page, toolkit, PageflowEditor.PAGE_ID,
-				EditorResourcesNLS.OverviewPage_NavigationSection_name,
-				EditorResourcesNLS.OverviewPage_NavigationSection_description,
+				NewEditorResourcesNLS.OverviewPage_NavigationSection_name,
+				NewEditorResourcesNLS.OverviewPage_NavigationSection_description,
 				null, null);
 	}
 
@@ -157,7 +157,7 @@
 
 		TableColumn column1 = new TableColumn(table, SWT.LEFT);
 		column1
-				.setText(EditorResourcesNLS.OverviewPage_NavigationSection_table_col1);
+				.setText(NewEditorResourcesNLS.OverviewPage_NavigationSection_table_col1);
 		// column1.setWidth(COLUMN_WITH);
 		tablelayout.addColumnData(new ColumnWeightData(1, COLUMN_WITH, true));
 		// tablelayout.addColumnData(new ColumnWeightData(1, true));
@@ -165,7 +165,7 @@
 
 		TableColumn column2 = new TableColumn(table, SWT.LEFT);
 		column2
-				.setText(EditorResourcesNLS.OverviewPage_NavigationSection_table_col2);
+				.setText(NewEditorResourcesNLS.OverviewPage_NavigationSection_table_col2);
 		tablelayout.addColumnData(new ColumnWeightData(1, COLUMN_WITH, true));
 		// tablelayout.addColumnData(new ColumnWeightData(1, true));
 		column2.setResizable(true);
@@ -173,7 +173,7 @@
 
 		TableColumn column3 = new TableColumn(table, SWT.LEFT);
 		column3
-				.setText(EditorResourcesNLS.OverviewPage_NavigationSection_table_col3);
+				.setText(NewEditorResourcesNLS.OverviewPage_NavigationSection_table_col3);
 		tablelayout.addColumnData(new ColumnWeightData(1, COLUMN_WITH, true));
 		// tablelayout.addColumnData(new ColumnWeightData(1, true));
 		column3.setResizable(true);
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/section/OverviewOthersSection.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/section/OverviewOthersSection.java
index e9a73b2..4492d26 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/section/OverviewOthersSection.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/section/OverviewOthersSection.java
@@ -30,7 +30,7 @@
 import org.eclipse.jst.jsf.facesconfig.emf.FacesConfigType;
 import org.eclipse.jst.jsf.facesconfig.emf.FactoryType;
 import org.eclipse.jst.jsf.facesconfig.emf.LifecycleType;
-import org.eclipse.jst.jsf.facesconfig.ui.EditorResourcesNLS;
+import org.eclipse.jst.jsf.facesconfig.ui.NewEditorResourcesNLS;
 import org.eclipse.jst.jsf.facesconfig.ui.page.IFacesConfigPage;
 import org.eclipse.jst.jsf.facesconfig.ui.page.OthersPage;
 import org.eclipse.swt.SWT;
@@ -61,8 +61,8 @@
 	public OverviewOthersSection(Composite parent, IManagedForm managedForm,
 			IFacesConfigPage page, FormToolkit toolkit) {
 		super(parent, managedForm, page, toolkit, OthersPage.PAGE_ID,
-				EditorResourcesNLS.OverviewPage_OthersSection_name,
-				EditorResourcesNLS.OverviewPage_OthersSection_description,
+				NewEditorResourcesNLS.OverviewPage_OthersSection_name,
+				NewEditorResourcesNLS.OverviewPage_OthersSection_description,
 				null, null);
 	}
 
@@ -113,13 +113,13 @@
 		TableColumn valuecol = new TableColumn(table, SWT.NONE);
 		tablelayout.addColumnData(new ColumnWeightData(1, COLUMN_WITH, true));
 		valuecol
-				.setText(EditorResourcesNLS.OverviewPage_OthersSection_table_valuecol);
+				.setText(NewEditorResourcesNLS.OverviewPage_OthersSection_table_valuecol);
 		valuecol.setResizable(true);
 
 		TableColumn typecol = new TableColumn(table, SWT.NONE);
 		tablelayout.addColumnData(new ColumnWeightData(1, COLUMN_WITH, true));
 		typecol
-				.setText(EditorResourcesNLS.OverviewPage_OthersSection_table_typecol);
+				.setText(NewEditorResourcesNLS.OverviewPage_OthersSection_table_typecol);
 		typecol.setResizable(true);
 
 		return table;
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/util/WebrootUtil.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/util/WebrootUtil.java
index c196da5..a7a9f45 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/util/WebrootUtil.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/util/WebrootUtil.java
@@ -19,7 +19,6 @@
 import org.eclipse.core.runtime.Path;
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jem.util.emf.workbench.ProjectUtilities;
 
 /**
  * This utility class is used to make a bridge between the relative path from
@@ -44,7 +43,7 @@
 	static public String getProjectPath(EObject model, String strPath) {
 		// String projectName = "";
 
-		IProject project = ProjectUtilities.getProject(model);
+		IProject project = getProject(model);
 		// if (project != null) {
 		// projectName = project.getName();
 		// }
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig/build.properties b/jsf/plugins/org.eclipse.jst.jsf.facesconfig/build.properties
index 9cb92e6..ae85643 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig/build.properties
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig/build.properties
@@ -3,11 +3,11 @@
 #
 # $Id$
 
-bin.includes = org.eclipse.jst.jsf.facesconfig.jar,\
+bin.includes = .,\
                model/,\
                META-INF/,\
                plugin.xml,\
                plugin.properties
-jars.compile.order = org.eclipse.jst.jsf.facesconfig.jar
-source.org.eclipse.jst.jsf.facesconfig.jar = src/
-output.org.eclipse.jst.jsf.facesconfig.jar = bin/
\ No newline at end of file
+jars.compile.order = .
+source.. = facesconfig/
+output.. = bin/
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 be32fa9..0000000
--- a/jsf/plugins/org.eclipse.jst.jsf.ui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,33 +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.wst.common.navigator.views,
- org.eclipse.ui.ide,
- org.eclipse.jst.j2ee.core,
- org.eclipse.emf.ecore,
- org.eclipse.jem.util
-Eclipse-AutoStart: 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();
-	}
-}