Fix for https://bugs.eclipse.org/bugs/show_bug.cgi?id=199295.
diff --git a/jsf/tests/org.eclipse.jst.jsf.core.tests/.settings/org.eclipse.jdt.core.prefs b/jsf/tests/org.eclipse.jst.jsf.core.tests/.settings/org.eclipse.jdt.core.prefs
index 6eb0c92..fe5af64 100644
--- a/jsf/tests/org.eclipse.jst.jsf.core.tests/.settings/org.eclipse.jdt.core.prefs
+++ b/jsf/tests/org.eclipse.jst.jsf.core.tests/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,61 @@
-#Tue Apr 10 09:03:00 PDT 2007
+#Fri Aug 24 19:12:00 PDT 2007
 eclipse.preferences.version=1
 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
 org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=ignore
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
 org.eclipse.jdt.core.compiler.source=1.5
diff --git a/jsf/tests/org.eclipse.jst.jsf.core.tests/.settings/org.eclipse.jdt.ui.prefs b/jsf/tests/org.eclipse.jst.jsf.core.tests/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 23a177f..0000000
--- a/jsf/tests/org.eclipse.jst.jsf.core.tests/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Wed Mar 08 10:10:00 PST 2006
-eclipse.preferences.version=1
-internal.default.compliance=default
diff --git a/jsf/tests/org.eclipse.jst.jsf.core.tests/src/org/eclipse/jst/jsf/core/tests/util/JSFCoreUtilHelper.java b/jsf/tests/org.eclipse.jst.jsf.core.tests/src/org/eclipse/jst/jsf/core/tests/util/JSFCoreUtilHelper.java
index 2732553..924444f 100644
--- a/jsf/tests/org.eclipse.jst.jsf.core.tests/src/org/eclipse/jst/jsf/core/tests/util/JSFCoreUtilHelper.java
+++ b/jsf/tests/org.eclipse.jst.jsf.core.tests/src/org/eclipse/jst/jsf/core/tests/util/JSFCoreUtilHelper.java
@@ -11,12 +11,16 @@
 package org.eclipse.jst.jsf.core.tests.util;
 
 import java.io.File;
+import java.io.FileNotFoundException;
 import java.io.FilenameFilter;
+import java.io.IOException;
 
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.NullProgressMonitor;
 import org.eclipse.jst.j2ee.internal.web.archive.operations.WebFacetProjectCreationDataModelProvider;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.core.internal.jsflibraryconfig.JSFLibraryRegistryUtil;
 import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.ArchiveFile;
 import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary;
@@ -27,7 +31,11 @@
 import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
 import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
 
-public class JSFCoreUtilHelper {
+public final class JSFCoreUtilHelper 
+{
+    private static final String JSFRUNTIMEJARSDIR = "jsfRuntimeJarsDirectoryV";
+    private static String JSF11Path = "";
+    private static String JSF12Path = "";
 
 	/**
 	 * Constructs jsfLib using this plugin's install path and "testfiles" subdirectory 
@@ -80,8 +88,7 @@
 		
 		return jsfLib;
 	}
-	
-	
+
 	/**
 	 * Create a Dynamic Web application with given name using default operation.
 	 * If project with given name already exists, then it returns that project.
@@ -99,7 +106,7 @@
 		}
 		return ResourcesPlugin.getWorkspace().getRoot().getProject(aProjectName);
 	}
-	
+
 	/**
 	 * If the JSF Library registry is empty, it will seed it with an Impl and non-Impl library
 	 */
@@ -195,6 +202,162 @@
 		return jsfLib;
 	}
 
+    /**
+     * @param jsfVersion
+     * @return Directory name for jsf runtime jars.  
+     * <br>Will be null if not set in JSFRUNTIMEJARSDIRV<b>X.X</b> system property
+     */
+    public static String getJSFRuntimeJarsDirectory(JSFVersion jsfVersion) {
+        String propertyName = JSFRUNTIMEJARSDIR+jsfVersion.toString();
+        String res = System.getProperty(propertyName);
+        if (res == null) {
+            //check env var also
+            res = System.getenv(propertyName);
+        }
+
+        // do some tracing the first time a new value is returned for 1.1 or 1.2
+        if (jsfVersion == JSFVersion.V1_1
+               && JSF11Path != res)
+        {
+            System.out.printf("Using jsf runtime path %s for propertyName %s\n", res, propertyName);
+            JSF11Path = res;
+        }
+        else if (jsfVersion == JSFVersion.V1_2
+                   && JSF12Path != res)
+        {
+              System.out.printf("Using jsf runtime path %s for propertyName %s\n", res, propertyName);
+              JSF12Path = res;
+        }
+
+        return res;
+    }
+
+    /**
+     * Returns true if the environment property holding the name of the directory that points at the 
+     * runtime jars exist.  
+     * <p>
+     * The expected property name is jsfRuntimeJarsDirectoryVXX where XX is the
+     * JSFVersion.  <br>i.e "jsfRuntimeJarsDirectoryV1.1", or "jsfRuntimeJarsDirectoryV1.2"
+     * <p>
+     * It <b>does</b> check for the existence of the directory.<br>
+     * It <b>does not</b> check for any jars within that directory.
+     * 
+     * @param jsfVersion as String.  ie. "1.1", or "1.2"
+     * @return true if the property is set
+     */
+    public static boolean isJSFRuntimeJarsDirectoryPropertySet(JSFVersion jsfVersion) {
+        String dirName = getJSFRuntimeJarsDirectory(jsfVersion);
+        if (dirName != null && dirName.trim().length() != 0)
+        {
+            File dir = new File(dirName);
+            
+            if (dir.exists() && dir.isDirectory())
+            {
+                return true;
+            }
+            else
+            {
+                System.err.printf("Dir: %s either doesn't exists or is not a directory\n",dirName);
+            }
+        }
+        else 
+        {
+            System.err.println("dirName is null");
+        }
+
+        return false;
+    }
+
+    public static boolean createRegistryAndAddReferences(JSFFacetedTestEnvironment jsfFacedEnv, String[] archiveFiles, JSFVersion jsfVersion) throws CoreException {
+        JSFLibraryRegistry jsfLibRegistry = 
+            JSFLibraryRegistryUtil.getInstance().getJSFLibraryRegistry();
+
+       if (archiveFiles != null)
+        {
+            final String libIDandName = "_internalJSFRuntimeLibraryV" + jsfVersion + "_";
+            JSFLibrary jsfImpl = JSFCoreUtilHelper.
+                constructJSFLib(libIDandName, libIDandName,"", archiveFiles, true);
+            jsfLibRegistry.addJSFLibrary(jsfImpl);
+            jsfFacedEnv.addJSFLibraryReference(jsfImpl, true);
+            return true;
+        }
+       
+       return false;
+    }
+
+    public static String[] getJSFRuntimeJarNames(JSFVersion version) throws IOException
+    {
+        String[] jarNames = null;
+        String dirName = getJSFRuntimeJarsDirectory(version);
+        System.out.printf("Using dirName: %s\n", dirName);
+        if (dirName != null) {
+            File dir = new File(dirName);
+            if (dir.exists() && dir.isDirectory()) {
+                File[] jars = dir.listFiles();
+                if (jars != null && jars.length > 0) {
+                    jarNames = new String[jars.length];
+                    for (int i = 0; i < jars.length; i++) {
+                        jarNames[i] = jars[i].getAbsolutePath();
+                    }
+                }
+            }
+            else
+            {
+                throw new FileNotFoundException(dirName+" is either does not exist or is not a directory");
+            }
+        }
+        else
+        {
+            throw new FileNotFoundException("dirName is null");
+        }
+        return jarNames;
+    }
+
+    public static boolean isJSFRuntimeJarsDirectoryValid(JSFVersion jsfVersion)
+    {
+        try
+        {
+            return getJSFRuntimeJarNames(jsfVersion) != null;
+        }
+        catch (IOException e)
+        {
+            return false;
+        }
+    }
+
+    /**
+     * Attempts to create and initialize a JSF library for the jar files stored at the location
+     * pointed to by the standard env variable (@see getJSFRuntimeJarsDirectory)
+     * @param jsfVersion
+     * @param jsfFacetedTestEnv
+     * @return true if successful
+     * @throws Exception
+     */
+    public static boolean addJSFRuntimeJarsToClasspath(JSFVersion jsfVersion, JSFFacetedTestEnvironment jsfFacetedTestEnv) throws Exception 
+    {
+        final String[] jarNames = getJSFRuntimeJarNames(jsfVersion);
+        return createRegistryAndAddReferences(jsfFacetedTestEnv, jarNames, jsfVersion);
+    }
+
+    /**
+     * @param testClass
+     * @param jsfVersion
+     * @return a message informing a test suite runner that the environment variable
+     * isn't correct for finding JSF library jar files
+     */
+    public static String getTestRequiresJSFRuntimeMessage(Class<?> testClass, JSFVersion jsfVersion) {
+        StringBuffer sb = new StringBuffer();
+        sb.append("Unable to run test suite \"");
+        sb.append(testClass.getName());
+        sb.append("\"; JSF runtime (v");
+        sb.append(jsfVersion.toString());
+        sb.append(") is required but not present.\nSystem property or environment variable \"jsfRuntimeJarsDirectoryV");
+        sb.append(jsfVersion.toString());
+        sb.append("\" must be set to point to a directory containing JSF runtime (v");
+        sb.append(jsfVersion.toString());
+        sb.append(") JARs.");
+        return sb.toString();
+    }
 //	/**
 //	 * Creates a JSF Library from all the jars and zips found at the relative
 //	 * path from this plugin.
diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/.settings/org.eclipse.jdt.core.prefs b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/.settings/org.eclipse.jdt.core.prefs
index fd4ebac..e5bbef2 100644
--- a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/.settings/org.eclipse.jdt.core.prefs
+++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,61 @@
-#Tue Apr 10 09:29:46 PDT 2007
+#Thu Aug 23 17:19:35 PDT 2007
 eclipse.preferences.version=1
 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
 org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=ignore
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
 org.eclipse.jdt.core.compiler.source=1.5
diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/common/metadata/tests/AbstractBaseMetaDataTestCase.java b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/common/metadata/tests/AbstractBaseMetaDataTestCase.java
index edc801b..82fb387 100644
--- a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/common/metadata/tests/AbstractBaseMetaDataTestCase.java
+++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/common/metadata/tests/AbstractBaseMetaDataTestCase.java
@@ -109,11 +109,11 @@
 		if (debug_info){
 			printLine("Entity: "+entity.getId(),indent);
 			indent++;
-			for(Iterator it=entity.getTraits().iterator();it.hasNext();){
+			for(Iterator<?> it=entity.getTraits().iterator();it.hasNext();){
 				Trait t = (Trait)it.next();
 				printLine("Trait: "+t.getId()+"["+ getValue(t)+ "]", indent);
 			}
-			for (Iterator it=entity.getChildEntities().iterator();it.hasNext();){
+			for (Iterator<?> it=entity.getChildEntities().iterator();it.hasNext();){
 				dumpMDTree((Entity)it.next(), indent);
 			}
 		}
@@ -121,9 +121,9 @@
 	
 	private String getValue(Trait trait) {
 		if (trait.getValue() instanceof ListOfValues){
-			List l = TraitValueHelper.getValueAsListOfStrings(trait);
+			List<?> l = TraitValueHelper.getValueAsListOfStrings(trait);
 			StringBuffer buf = new StringBuffer();
-			for (Iterator it=l.iterator();it.hasNext();){				
+			for (Iterator<?> it=l.iterator();it.hasNext();){
 				buf.append((String)it.next());
 				buf.append(", ");
 			}
diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/common/metadata/tests/TraitValueHelperTests.java b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/common/metadata/tests/TraitValueHelperTests.java
index 39f0969..2421873 100644
--- a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/common/metadata/tests/TraitValueHelperTests.java
+++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/common/metadata/tests/TraitValueHelperTests.java
@@ -142,7 +142,7 @@
 		Trait trait = TaglibDomainMetaDataQueryHelper.getTrait(entity, "multivalStrings");
 		Assert.assertNotNull(trait);
 		Assert.assertTrue(TraitValueHelper.getValueAsListOfStrings(trait) instanceof List);
-		List vals = TraitValueHelper.getValueAsListOfStrings(trait);
+		List<?> vals = TraitValueHelper.getValueAsListOfStrings(trait);
 		Assert.assertEquals(3, vals.size());
 		Assert.assertTrue(vals.get(0) instanceof String);
 		Assert.assertEquals("A", (String)vals.get(0));
@@ -175,7 +175,7 @@
 		Assert.assertNotNull(trait);
 		Assert.assertNotNull(trait.getValue());
 		Assert.assertTrue(trait.getValue() instanceof ListOfValues);
-		List vals = TraitValueHelper.getValueAsListOfStrings(trait);
+		List<?> vals = TraitValueHelper.getValueAsListOfStrings(trait);
 		Assert.assertEquals(2, vals.size());
 		Assert.assertEquals("a day in the life(en_US)", vals.get(0));
 		Assert.assertEquals("another string(en_US)", vals.get(1));
diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/AllTests.java b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/AllTests.java
index 0f7b281..b19a1e8 100644
--- a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/AllTests.java
+++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/AllTests.java
@@ -28,6 +28,8 @@
 import org.eclipse.jst.jsf.common.metadata.tests.TinyTestTests;
 import org.eclipse.jst.jsf.common.metadata.tests.TraitImplTests;
 import org.eclipse.jst.jsf.common.metadata.tests.TraitValueHelperTests;
+import org.eclipse.jst.jsf.core.JSFVersion;
+import org.eclipse.jst.jsf.core.tests.util.JSFCoreUtilHelper;
 import org.eclipse.jst.jsf.metadata.tests.annotations.DisableCMAnnotationFilesAPITest;
 import org.eclipse.jst.jsf.metadata.tests.metadataprocessing.AttributeValueRuntimeTypeExtensionsTests;
 import org.eclipse.jst.jsf.metadata.tests.metadataprocessing.AttributeValueRuntimeTypeFactoryTests;
@@ -56,7 +58,6 @@
 import org.eclipse.jst.jsf.metadata.tests.taglibprocessing.ValueTypeTests;
 import org.eclipse.jst.jsf.metadata.tests.util.IJSFRuntimeRequiredV11;
 import org.eclipse.jst.jsf.metadata.tests.util.IJSFRuntimeRequiredV12;
-import org.eclipse.jst.jsf.test.util.JSFTestUtil;
 
 public class AllTests {
 
@@ -123,10 +124,10 @@
 		return suite;
 	}
 
-	private static void addTestSuite(TestSuite suite, Class klass) {
+	private static void addTestSuite(TestSuite suite, Class<?> klass) {
 		if (!_inited) {
-			_jsfRuntimePresentV11 = JSFTestUtil.isJSFRuntimeJarsDirectoryPropertySet("1.1");
-			_jsfRuntimePresentV12 = JSFTestUtil.isJSFRuntimeJarsDirectoryPropertySet("1.2");
+			_jsfRuntimePresentV11 = JSFCoreUtilHelper.isJSFRuntimeJarsDirectoryPropertySet(JSFVersion.V1_1);
+			_jsfRuntimePresentV12 = JSFCoreUtilHelper.isJSFRuntimeJarsDirectoryPropertySet(JSFVersion.V1_2);
 			_inited = true;
 		}
 		if (IJSFRuntimeRequiredV11.class.isAssignableFrom(klass)){
diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/metadataprocessing/AttributeValueRuntimeTypeExtensionsTests.java b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/metadataprocessing/AttributeValueRuntimeTypeExtensionsTests.java
index 893c297..25f454a 100644
--- a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/metadataprocessing/AttributeValueRuntimeTypeExtensionsTests.java
+++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/metadataprocessing/AttributeValueRuntimeTypeExtensionsTests.java
@@ -25,7 +25,7 @@
 	private String uri1 = "http://org.eclipse.jsf/metadataprocessing";
 	
 	public void testBarkerExt(){
-		List barkProcessors = MetaDataEnabledProcessingFactory.getInstance().
+		List<?> barkProcessors = MetaDataEnabledProcessingFactory.getInstance().
 		getAttributeValueRuntimeTypeFeatureProcessors(IBarker.class, null, uri1, 
 				"MyTag", "MyLongAttr");  //invalid 
 		
@@ -36,7 +36,7 @@
 	}
 	
 	public void testGetPossibleValsWithExtensions(){
-		List processors	= MetaDataEnabledProcessingFactory.getInstance().
+		List<?> processors	= MetaDataEnabledProcessingFactory.getInstance().
 			getAttributeValueRuntimeTypeFeatureProcessors(IPossibleValues.class, null, uri1, 
 				"MyTag", "BooleanAttr");   
 		
@@ -51,7 +51,7 @@
 	}
 	
 	public void testNonFeatureExt(){
-		List testProcessors = MetaDataEnabledProcessingFactory.getInstance().
+		List<?> testProcessors = MetaDataEnabledProcessingFactory.getInstance().
 		getAttributeValueRuntimeTypeFeatureProcessors(Test.class//invalid
 				,null, uri1, "MyTag", "BooleanAttr");  
 		
diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/metadataprocessing/AttributeValueRuntimeTypeFactoryTests.java b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/metadataprocessing/AttributeValueRuntimeTypeFactoryTests.java
index ca0eeb5..9b7f4f8 100644
--- a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/metadataprocessing/AttributeValueRuntimeTypeFactoryTests.java
+++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/metadataprocessing/AttributeValueRuntimeTypeFactoryTests.java
@@ -36,7 +36,7 @@
 		Assert.assertNotNull(atype.getTypeExtension().getClassName());
 		Assert.assertTrue(atype.getTypeExtension().getBundleID().equals(MetadataTestsPlugin.ID_BUNDLE));		
 		Assert.assertTrue(atype.getTypeExtension().getTypeID().equals(AttributeValueRuntimeTypesRegistryTests.BOOLEANTYPE_ID));
-		List features =  atype.getFeatureAdapters(IPossibleValues.class);
+		List<?> features =  atype.getFeatureAdapters(IPossibleValues.class);
 		Assert.assertNotNull(features);
 		Assert.assertFalse(features.isEmpty());
 		Assert.assertEquals(2, features.size());  //we expect MyBooleanType and MetaDataEnabledBarkProcessor  
diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/metadataprocessing/MetaDataEnabledBarkAdapter.java b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/metadataprocessing/MetaDataEnabledBarkAdapter.java
index e4c76aa..6acbf8e 100644
--- a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/metadataprocessing/MetaDataEnabledBarkAdapter.java
+++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/metadataprocessing/MetaDataEnabledBarkAdapter.java
@@ -36,7 +36,7 @@
 		return true;
 	}
 
-	public List getBarks() {
+	public List<?> getBarks() {
 		return getTraitValueAsListOfStrings("barks");
 //		//notice that we want to use the bundle id of the extender
 //		return CMAnnotationHelper.getCMAttributePropertyValues(MetadataTestsPlugin.ID_BUNDLE, getCMAnnotationContext().getUri(),
@@ -44,7 +44,7 @@
 //					"barks");
 	}
 
-	public List getPossibleValues() {
+	public List<?> getPossibleValues() {
 		return getBarks();
 	}
 
diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/metadataprocessing/MetaDataProcessorsFactoryTests.java b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/metadataprocessing/MetaDataProcessorsFactoryTests.java
index edbef54..c2f29a2 100644
--- a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/metadataprocessing/MetaDataProcessorsFactoryTests.java
+++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/metadataprocessing/MetaDataProcessorsFactoryTests.java
@@ -124,7 +124,7 @@
 //	}
 	
 	private void dumpPossibleValues(IPossibleValues p){
-		Iterator it = p.getPossibleValues().iterator();
+		Iterator<?> it = p.getPossibleValues().iterator();
 		while (it.hasNext()){
 			Object obj = it.next();
 			if (obj instanceof String)
diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/metadataprocessing/features/IBarker.java b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/metadataprocessing/features/IBarker.java
index 7dd743c..1d84b6e 100644
--- a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/metadataprocessing/features/IBarker.java
+++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/metadataprocessing/features/IBarker.java
@@ -18,5 +18,5 @@
 public interface IBarker extends IMetaDataEnabledFeature {
 
 	public boolean canBark();
-	public List getBarks();
+	public List<?> getBarks();
 }
diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/metadataprocessing/types/MyBooleanType.java b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/metadataprocessing/types/MyBooleanType.java
index a75b26c..70fb00e 100644
--- a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/metadataprocessing/types/MyBooleanType.java
+++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/metadataprocessing/types/MyBooleanType.java
@@ -21,7 +21,7 @@
  */
 public class MyBooleanType extends BooleanType {
 
-	public List getPossibleValues() {
+	public List<?> getPossibleValues() {
 		System.out.println("MyBooleanType: getPossibleValues()");
 		return super.getPossibleValues();
 	}
diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/ActionTypeTests.java b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/ActionTypeTests.java
index 5aa7a4a..af5c851 100644
--- a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/ActionTypeTests.java
+++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/ActionTypeTests.java
@@ -12,7 +12,7 @@
 
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.jst.jsf.common.internal.types.CompositeType;
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.metadata.tests.util.SingleJSPTestCase;
 import org.eclipse.jst.jsf.metadataprocessors.features.IPossibleValues;
 import org.eclipse.jst.jsf.metadataprocessors.features.IValidELValues;
@@ -26,7 +26,7 @@
 	public ActionTypeTests(){
 		super(	"/testfiles/jsps/actionTypeTest.jsp.data/", 
 				"/actionTypeTest.jsp", 
-				IJSFCoreConstants.FACET_VERSION_1_1,
+				JSFVersion.V1_1,
 				"/testfiles/web/faces-config_1_1.xml.data");
 	}
 
diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/AllTests.java b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/AllTests.java
index 19ca1b1..ad426c2 100644
--- a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/AllTests.java
+++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/AllTests.java
@@ -11,13 +11,14 @@
  ********************************************************************************/
 package org.eclipse.jst.jsf.metadata.tests.taglibprocessing;
 
-import org.eclipse.jst.jsf.metadata.tests.util.IJSFRuntimeRequiredV11;
-import org.eclipse.jst.jsf.metadata.tests.util.IJSFRuntimeRequiredV12;
-import org.eclipse.jst.jsf.test.util.JSFTestUtil;
-
 import junit.framework.Test;
 import junit.framework.TestSuite;
 
+import org.eclipse.jst.jsf.core.JSFVersion;
+import org.eclipse.jst.jsf.core.tests.util.JSFCoreUtilHelper;
+import org.eclipse.jst.jsf.metadata.tests.util.IJSFRuntimeRequiredV11;
+import org.eclipse.jst.jsf.metadata.tests.util.IJSFRuntimeRequiredV12;
+
 public class AllTests {
 
 	private static boolean _inited;
@@ -62,10 +63,10 @@
 		//$JUnit-END$
 		return suite;
 	}
-	private static void addTestSuite(TestSuite suite, Class klass) {
+	private static void addTestSuite(TestSuite suite, Class<?> klass) {
 		if (!_inited) {
-			_jsfRuntimePresentV11 = JSFTestUtil.isJSFRuntimeJarsDirectoryPropertySet("1.1");
-			_jsfRuntimePresentV12 = JSFTestUtil.isJSFRuntimeJarsDirectoryPropertySet("1.2");
+			_jsfRuntimePresentV11 = JSFCoreUtilHelper.isJSFRuntimeJarsDirectoryPropertySet(JSFVersion.V1_1);
+			_jsfRuntimePresentV12 = JSFCoreUtilHelper.isJSFRuntimeJarsDirectoryPropertySet(JSFVersion.V1_2);
 			_inited = true;
 		}
 		if (IJSFRuntimeRequiredV11.class.isAssignableFrom(klass)){
diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/ComponentBindingTypeTests.java b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/ComponentBindingTypeTests.java
index dbe1ef1..400e34e 100644
--- a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/ComponentBindingTypeTests.java
+++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/ComponentBindingTypeTests.java
@@ -12,7 +12,7 @@
 package org.eclipse.jst.jsf.metadata.tests.taglibprocessing;
 
 import org.eclipse.jst.jsf.common.internal.types.CompositeType;
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.metadata.tests.util.SingleJSPTestCase;
 import org.eclipse.jst.jsf.metadataprocessors.features.ELIsNotValidException;
 import org.eclipse.jst.jsf.metadataprocessors.features.IPossibleValues;
@@ -26,7 +26,7 @@
 	public ComponentBindingTypeTests() {
 		super(	"/testfiles/jsps/facesConfigValidatorIDType.jsp.data/", 
 				"/facesConfigValidatorIDType.jsp", 
-				IJSFCoreConstants.FACET_VERSION_1_1,
+				JSFVersion.V1_1,
 				"/testfiles/web/faces-config_1_1.xml.data");
 	}
 	protected void setUp() throws Exception {
diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/ComponentIDTypeTests.java b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/ComponentIDTypeTests.java
index 1f97e46..d49a87f 100644
--- a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/ComponentIDTypeTests.java
+++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/ComponentIDTypeTests.java
@@ -11,7 +11,7 @@
  
 package org.eclipse.jst.jsf.metadata.tests.taglibprocessing;
 
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.metadata.tests.util.SingleJSPTestCase;
 import org.eclipse.jst.jsf.metadataprocessors.features.ELIsNotValidException;
 import org.eclipse.jst.jsf.metadataprocessors.features.IPossibleValues;
@@ -25,7 +25,7 @@
 	public ComponentIDTypeTests() {
 		super(	"/testfiles/jsps/facesConfigValidatorIDType.jsp.data/", 
 				"/facesConfigValidatorIDType.jsp", 
-				IJSFCoreConstants.FACET_VERSION_1_1,
+				JSFVersion.V1_1,
 				"/testfiles/web/faces-config_1_1.xml.data");
 	}
 	protected void setUp() throws Exception {
diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/EnumeratedIntegerTypeTest.java b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/EnumeratedIntegerTypeTest.java
index 0344d08..eefba28 100644
--- a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/EnumeratedIntegerTypeTest.java
+++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/EnumeratedIntegerTypeTest.java
@@ -15,7 +15,6 @@
 
 import org.eclipse.jst.jsf.metadataprocessors.features.IDefaultValue;
 import org.eclipse.jst.jsf.metadataprocessors.features.IValidValues;
-import org.eclipse.jst.jsf.metadataprocessors.features.IValidationMessage;
 
 public class EnumeratedIntegerTypeTest extends TaglibProcessingTestCase {
 	
@@ -31,7 +30,8 @@
 		vv.getValidationMessages().clear();
 		Assert.assertFalse(vv.isValidValue("6"));
 		Assert.assertFalse(vv.getValidationMessages().size()==0);
-		IValidationMessage msg = (IValidationMessage)vv.getValidationMessages().get(0);
+		// TODO: dead?
+		/*IValidationMessage msg = (IValidationMessage)*/vv.getValidationMessages().get(0);
 	}
 	
 	public void testDefaultValues(){		
diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/FacesConfigConverterIDTypeTests.java b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/FacesConfigConverterIDTypeTests.java
index 0bb2037..ab1c0d1 100644
--- a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/FacesConfigConverterIDTypeTests.java
+++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/FacesConfigConverterIDTypeTests.java
@@ -11,7 +11,7 @@
  package org.eclipse.jst.jsf.metadata.tests.taglibprocessing;
 
 import org.eclipse.jst.jsf.common.internal.types.CompositeType;
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.metadata.tests.util.SingleJSPTestCase;
 import org.eclipse.jst.jsf.metadataprocessors.features.IPossibleValues;
 import org.eclipse.jst.jsf.metadataprocessors.features.IValidELValues;
@@ -22,7 +22,7 @@
 	public FacesConfigConverterIDTypeTests() {
 		super(	"/testfiles/jsps/facesConfigConverterIDType.jsp.data/", 
 				"/facesConfigConverterIDType.jsp", 
-				IJSFCoreConstants.FACET_VERSION_1_1,
+				JSFVersion.V1_1,
 				"/testfiles/web/faces-config_1_1.xml.data");
 	
 	}
diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/FacesConfigValidatorIDTypeTests.java b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/FacesConfigValidatorIDTypeTests.java
index 2eebeef..518501a 100644
--- a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/FacesConfigValidatorIDTypeTests.java
+++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/FacesConfigValidatorIDTypeTests.java
@@ -1,7 +1,7 @@
 package org.eclipse.jst.jsf.metadata.tests.taglibprocessing;
 
 import org.eclipse.jst.jsf.common.internal.types.CompositeType;
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.metadata.tests.util.SingleJSPTestCase;
 import org.eclipse.jst.jsf.metadataprocessors.features.IPossibleValues;
 import org.eclipse.jst.jsf.metadataprocessors.features.IValidELValues;
@@ -14,7 +14,7 @@
 	public FacesConfigValidatorIDTypeTests() {
 		super(	"/testfiles/jsps/facesConfigValidatorIDType.jsp.data/", 
 				"/facesConfigValidatorIDType.jsp", 
-				IJSFCoreConstants.FACET_VERSION_1_1,
+				JSFVersion.V1_1,
 				"/testfiles/web/faces-config_1_1.xml.data");
 	
 	}
diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/JSFHTMLTestCase.java b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/JSFHTMLTestCase.java
index 7436bdb..7940d4f 100644
--- a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/JSFHTMLTestCase.java
+++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/JSFHTMLTestCase.java
@@ -15,7 +15,7 @@
 import org.eclipse.jst.jsf.common.metadata.Trait;
 import org.eclipse.jst.jsf.common.metadata.query.ITaglibDomainMetaDataModelContext;
 import org.eclipse.jst.jsf.common.metadata.query.TaglibDomainMetaDataQueryHelper;
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.metadata.tests.util.IJSFRuntimeRequiredV11;
 import org.eclipse.jst.jsf.metadata.tests.util.JSPTestCase;
 import org.eclipse.jst.pagedesigner.editors.palette.paletteinfos.PaletteInfo;
@@ -27,7 +27,7 @@
 	private ITaglibDomainMetaDataModelContext _context;
 	
 	public JSFHTMLTestCase () {
-		super(	IJSFCoreConstants.FACET_VERSION_1_1,
+		super(	JSFVersion.V1_1,
 				"/testfiles/web/faces-config_1_1.xml.data");
 
 	}
diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/JavaClassTypeTest.java b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/JavaClassTypeTest.java
index 4c4764a..8e22ee8 100644
--- a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/JavaClassTypeTest.java
+++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/JavaClassTypeTest.java
@@ -11,7 +11,7 @@
  ********************************************************************************/
 package org.eclipse.jst.jsf.metadata.tests.taglibprocessing;
 
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.metadata.tests.util.IJSFRuntimeRequiredV11;
 import org.eclipse.jst.jsf.metadata.tests.util.SingleJSPTestCase;
 import org.eclipse.jst.jsf.metadataprocessors.features.IPossibleValues;
@@ -22,7 +22,7 @@
 	public JavaClassTypeTest() {
 		super("/testfiles/jsps/javaClassType.jsp.data",
 				"/javaClassType.jsp",
-				IJSFCoreConstants.FACET_VERSION_1_1,
+				JSFVersion.V1_1,
 				"/testfiles/web/faces-config_1_1.xml.data");
 		
 
diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/MethodBindingTypeTests.java b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/MethodBindingTypeTests.java
index 9a16f1c..03556f7 100644
--- a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/MethodBindingTypeTests.java
+++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/MethodBindingTypeTests.java
@@ -13,7 +13,7 @@
 
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.jst.jsf.common.internal.types.CompositeType;
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.metadata.tests.util.SingleJSPTestCase;
 import org.eclipse.jst.jsf.metadataprocessors.features.IPossibleValues;
 import org.eclipse.jst.jsf.metadataprocessors.features.IValidELValues;
@@ -27,7 +27,7 @@
 	public MethodBindingTypeTests() {
 		super(	"/testfiles/jsps/facesConfigValidatorIDType.jsp.data/", 
 				"/facesConfigValidatorIDType.jsp", 
-				IJSFCoreConstants.FACET_VERSION_1_1,
+				JSFVersion.V1_1,
 				"/testfiles/web/faces-config_1_1.xml.data");
 	}
 	protected void setUp() throws Exception {
diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/TaglibProcessingTestCase.java b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/TaglibProcessingTestCase.java
index 12e8e47..c64d60a 100644
--- a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/TaglibProcessingTestCase.java
+++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/TaglibProcessingTestCase.java
@@ -30,11 +30,11 @@
 	protected String tag = "MyTag";
 	protected String attributeName;
 	
-	protected List possibleValueAdapters;
-	protected List validValuesAdapters;
-	protected List defaultValueAdapters;
-	protected List createValuesAdapters;
-	protected List validELValuesAdapters;
+	protected List<?> possibleValueAdapters;
+	protected List<?> validValuesAdapters;
+	protected List<?> defaultValueAdapters;
+	protected List<?> createValuesAdapters;
+	protected List<?> validELValuesAdapters;
 	
 	public void setUp() throws Exception{
 		super.setUp();
@@ -55,7 +55,7 @@
         return attributeName;
 	}
 	
-	protected List getProcessorAdapters(Class featureClass) {
+	protected List<?> getProcessorAdapters(Class<?> featureClass) {
 		return MetaDataEnabledProcessingFactory.getInstance().
 			getAttributeValueRuntimeTypeFeatureProcessors(featureClass, docContext, 
 					uri, tag , getAttributeNameFromTest());
diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/ValueBindingTypeTests.java b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/ValueBindingTypeTests.java
index 1591ebd..38be8cb 100644
--- a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/ValueBindingTypeTests.java
+++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/ValueBindingTypeTests.java
@@ -12,7 +12,7 @@
 package org.eclipse.jst.jsf.metadata.tests.taglibprocessing;
 
 import org.eclipse.jst.jsf.common.internal.types.CompositeType;
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.metadata.tests.util.SingleJSPTestCase;
 import org.eclipse.jst.jsf.metadataprocessors.features.IPossibleValues;
 import org.eclipse.jst.jsf.metadataprocessors.features.IValidELValues;
@@ -25,7 +25,7 @@
 	public ValueBindingTypeTests() {
 		super(	"/testfiles/jsps/facesConfigValidatorIDType.jsp.data/", 
 				"/facesConfigValidatorIDType.jsp", 
-				IJSFCoreConstants.FACET_VERSION_1_1,
+				JSFVersion.V1_1,
 				"/testfiles/web/faces-config_1_1.xml.data");
 	}
 	protected void setUp() throws Exception {
diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/ValueTypeTests.java b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/ValueTypeTests.java
index 63a319a..2d1de98 100644
--- a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/ValueTypeTests.java
+++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/ValueTypeTests.java
@@ -12,7 +12,7 @@
 package org.eclipse.jst.jsf.metadata.tests.taglibprocessing;
 
 import org.eclipse.jst.jsf.common.internal.types.CompositeType;
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.metadata.tests.util.SingleJSPTestCase;
 import org.eclipse.jst.jsf.metadataprocessors.features.IPossibleValues;
 import org.eclipse.jst.jsf.metadataprocessors.features.IValidELValues;
@@ -25,7 +25,7 @@
 	public ValueTypeTests() {
 		super(	"/testfiles/jsps/facesConfigValidatorIDType.jsp.data/", 
 				"/facesConfigValidatorIDType.jsp", 
-				IJSFCoreConstants.FACET_VERSION_1_1,
+				JSFVersion.V1_1,
 				"/testfiles/web/faces-config_1_1.xml.data");
 	}
 	protected void setUp() throws Exception {
diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/util/BaseTestCase.java b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/util/BaseTestCase.java
index 02a2079..cc7e105 100644
--- a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/util/BaseTestCase.java
+++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/util/BaseTestCase.java
@@ -16,7 +16,7 @@
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.jdt.core.JavaModelException;
 import org.eclipse.jst.common.project.facet.JavaFacetUtils;
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.core.tests.util.JSFFacetedTestEnvironment;
 import org.eclipse.jst.jsf.metadata.tests.MetadataTestsPlugin;
 import org.eclipse.jst.jsf.test.util.ConfigurableTestCase;
@@ -38,12 +38,12 @@
     public static final String      PROXY_SETTING_PORT = "proxySettings_Port";
     public static final String      JSF_FACET_VERSION  = "jsfFacetVersion";    
     
-    private final String            _defaultJSFVersion;
+    private final JSFVersion            _defaultJSFVersion;
     
     /**
      * Default constructor
      */
-    public BaseTestCase(String defaultJSFVersion)
+    public BaseTestCase(JSFVersion defaultJSFVersion)
     {
         super();
         _defaultJSFVersion = defaultJSFVersion;
@@ -52,7 +52,7 @@
 	/**
 	 * @param name
 	 */
-	public BaseTestCase(String name, String defaultJSFVersion) {
+	public BaseTestCase(String name, JSFVersion defaultJSFVersion) {
         super(name);
         _defaultJSFVersion = defaultJSFVersion;
     }
@@ -96,8 +96,8 @@
 
         // if JSF 1.1, use web facet 2.4, if higher then use 2.5
         final String webProjVersion = 
-            (IJSFCoreConstants.FACET_VERSION_1_0.equals(_configuration.getJsfVersion())
-                    || IJSFCoreConstants.FACET_VERSION_1_1.equals(_configuration.getJsfVersion()))
+            (_configuration.getJsfVersion() == JSFVersion.V1_0
+                    || _configuration.getJsfVersion() == JSFVersion.V1_1)
                 ? "2.4" : "2.5";
         
         _testEnv = new WebProjectTestEnvironment
@@ -157,9 +157,9 @@
     {
         private final String  _proxyHostName;
         private final String  _proxyPort;
-        private final String  _jsfVersion;
+        private final JSFVersion  _jsfVersion;
         
-        MyConfiguration(final String proxyHostName, final String proxyPort, final String jsfVersion)
+        MyConfiguration(final String proxyHostName, final String proxyPort, final JSFVersion jsfVersion)
         {
             _proxyHostName = proxyHostName;
             _proxyPort = proxyPort;
@@ -170,7 +170,7 @@
         {
             _proxyHostName = configuration.get(BaseTestCase.PROXY_SETTING_HOST);
             _proxyPort = configuration.get(BaseTestCase.PROXY_SETTING_PORT);
-            _jsfVersion = configuration.get(BaseTestCase.JSF_FACET_VERSION);
+            _jsfVersion = JSFVersion.valueOfString(configuration.get(BaseTestCase.JSF_FACET_VERSION));
         }
         
         public boolean isProxyEnabled()
@@ -186,7 +186,7 @@
             return _proxyPort;
         }
 
-        public String getJsfVersion() {
+        public JSFVersion getJsfVersion() {
             return _jsfVersion;
         }
         
diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/util/JSPTestCase.java b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/util/JSPTestCase.java
index 60f731d..9a94761 100644
--- a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/util/JSPTestCase.java
+++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/util/JSPTestCase.java
@@ -13,19 +13,14 @@
 import java.io.File;
 
 import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
 import org.eclipse.jst.jsf.context.resolver.structureddocument.IStructuredDocumentContextResolverFactory;
 import org.eclipse.jst.jsf.context.resolver.structureddocument.internal.ITextRegionContextResolver;
 import org.eclipse.jst.jsf.context.structureddocument.IStructuredDocumentContext;
 import org.eclipse.jst.jsf.context.structureddocument.IStructuredDocumentContextFactory;
-import org.eclipse.jst.jsf.core.internal.jsflibraryconfig.JSFLibraryRegistryUtil;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistry;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.core.tests.util.JSFCoreUtilHelper;
 import org.eclipse.jst.jsf.core.tests.util.JSFFacetedTestEnvironment;
 import org.eclipse.jst.jsf.metadata.tests.MetadataTestsPlugin;
-import org.eclipse.jst.jsf.test.util.JSFTestUtil;
-import org.eclipse.jst.jsf.test.util.WebProjectTestEnvironment;
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
 
 public class JSPTestCase extends BaseTestCase 
@@ -40,13 +35,13 @@
      * Test config
      */
     private MyConfiguration                 _myConfig;
-    private final       String              _defaultJSFVersion;
+    private final       JSFVersion          _defaultJSFVersion;
     private  final      String              _defaultFacesConfigFile; 
     
     private 			String[] 			_runtimeJars;
 	
     
-    public JSPTestCase(final String defaultJSFVersion, final String defaultFacesConfigFile) 
+    public JSPTestCase(final JSFVersion defaultJSFVersion, final String defaultFacesConfigFile) 
     {
         super(defaultJSFVersion);
         _defaultJSFVersion = defaultJSFVersion;
@@ -73,12 +68,13 @@
     @Override
     protected JSFFacetedTestEnvironment configureJSFEnvironment() throws Exception
     {
+        final JSFVersion version = _myConfig.getFacetVersion();
     	JSFFacetedTestEnvironment jsfFacedEnv = new JSFFacetedTestEnvironment(_testEnv);
-    	jsfFacedEnv.initialize(_myConfig.getFacetVersion());
+    	jsfFacedEnv.initialize(version.toString());
             
         try {
         	initializeJSFRuntime();
-        	createRegistryAndAddReferences(_testEnv, jsfFacedEnv, _runtimeJars);
+            JSFCoreUtilHelper.createRegistryAndAddReferences(jsfFacedEnv, _runtimeJars, version);
         } catch (NoJSFRuntimeFoundException e) {
         	//
 		}
@@ -90,20 +86,11 @@
     }
     
 
-	private void createRegistryAndAddReferences(WebProjectTestEnvironment projectTestEnvironment, JSFFacetedTestEnvironment jsfFacedEnv, String[] archiveFiles) throws CoreException {
-		JSFLibraryRegistry jsfLibRegistry = JSFLibraryRegistryUtil.getInstance().getJSFLibraryRegistry();
-		
-		if (archiveFiles != null){
-			JSFLibrary jsfImpl = JSFCoreUtilHelper.constructJSFLib("_internalJSFRuntimeLibrary_", "_internalJSFRuntimeLibrary_","", archiveFiles, true);
-			jsfLibRegistry.addJSFLibrary(jsfImpl);
-			jsfFacedEnv.addJSFLibraryReference(jsfImpl, true);
-		}
-	}
-
-    private String[] getArchiveFiles() {
-//    	getJsfImplEnv();
-		return null;
-	}
+	// dead?
+//    private String[] getArchiveFiles() {
+////    	getJsfImplEnv();
+//		return null;
+//	}
 
 	protected IFile loadJSP(final String srcFileName, final String destFileName) throws Exception
     {
@@ -137,10 +124,10 @@
 
 	protected static class MyConfiguration
     {
-        private final String        _facetVersion;
+        private final JSFVersion    _facetVersion;
         private final String        _facesConfigFile;
         
-        MyConfiguration(String facetVersion, String facesConfigFile) 
+        MyConfiguration(JSFVersion facetVersion, String facesConfigFile) 
         {
             super();
             _facetVersion = facetVersion;
@@ -149,11 +136,11 @@
         
         MyConfiguration(TestConfiguration testConfiguration)
         {
-            _facetVersion = testConfiguration.get(BaseTestCase.JSF_FACET_VERSION);
+            _facetVersion = JSFVersion.valueOfString(testConfiguration.get(BaseTestCase.JSF_FACET_VERSION));
             _facesConfigFile = testConfiguration.get(FACES_CONFIG_FILE);
         }
 
-        public String getFacetVersion() {
+        public JSFVersion getFacetVersion() {
             return _facetVersion;
         }
 
@@ -163,7 +150,7 @@
     }
 	
 	protected void initializeJSFRuntime() throws NoJSFRuntimeFoundException{
-		String dir = JSFTestUtil.getJSFRuntimeJarsDirectory(_defaultJSFVersion);
+		String dir = JSFCoreUtilHelper.getJSFRuntimeJarsDirectory(_defaultJSFVersion);
 		if (dir == null || !jarsFound(dir) )
 			throw new NoJSFRuntimeFoundException();
 	}
diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/util/SingleJSPTestCase.java b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/util/SingleJSPTestCase.java
index 7ce9fc1..680240b 100644
--- a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/util/SingleJSPTestCase.java
+++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/util/SingleJSPTestCase.java
@@ -14,6 +14,7 @@
 import java.util.List;
 
 import org.eclipse.core.resources.IFile;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.metadataprocessors.IMetaDataEnabledFeature;
 import org.eclipse.jst.jsf.metadataprocessors.MetaDataEnabledProcessingFactory;
 import org.eclipse.jst.jsf.metadataprocessors.features.IPossibleValue;
@@ -51,7 +52,7 @@
     protected final String                      _destFileName;
     
 
-    protected SingleJSPTestCase(final String srcFileName, final String destFileName, final String defaultJSFVersion, final String defaultFacesConfigFile)
+    protected SingleJSPTestCase(final String srcFileName, final String destFileName, final JSFVersion defaultJSFVersion, final String defaultFacesConfigFile)
     {
         super(defaultJSFVersion, defaultFacesConfigFile);
         _srcFileName = srcFileName;
@@ -78,8 +79,8 @@
         }
     }
 	
-	protected IMetaDataEnabledFeature getProcessor(Class klass, String uri, String tagname, String attrName) {
-		List ret = MetaDataEnabledProcessingFactory.getInstance().
+	protected IMetaDataEnabledFeature getProcessor(Class<?> klass, String uri, String tagname, String attrName) {
+		List<?> ret = MetaDataEnabledProcessingFactory.getInstance().
 		getAttributeValueRuntimeTypeFeatureProcessors(klass, 
 				getStructuredDocumentContext(_structuredDocument, 1), //just need to establish the project; don't really care about offset.  should consider improving API
 				uri, 
@@ -93,7 +94,7 @@
 					
 	}
 	
-	protected void assertPossibleValues(List possibleValues, String[] strings) {
+	protected void assertPossibleValues(List<?> possibleValues, String[] strings) {
 		
 		for (int i=0;i < strings.length;i++) {
 			boolean found = false;
diff --git a/jsf/tests/org.eclipse.jst.jsf.test.util/.settings/org.eclipse.jdt.core.prefs b/jsf/tests/org.eclipse.jst.jsf.test.util/.settings/org.eclipse.jdt.core.prefs
index 93bf1bd..b27249c 100644
--- a/jsf/tests/org.eclipse.jst.jsf.test.util/.settings/org.eclipse.jdt.core.prefs
+++ b/jsf/tests/org.eclipse.jst.jsf.test.util/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,61 @@
-#Tue Apr 10 09:32:05 PDT 2007
+#Fri Aug 24 19:13:38 PDT 2007
 eclipse.preferences.version=1
 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
 org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=ignore
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
 org.eclipse.jdt.core.compiler.source=1.5
diff --git a/jsf/tests/org.eclipse.jst.jsf.test.util/src/org/eclipse/jst/jsf/test/util/ConfigurableTestSuite.java b/jsf/tests/org.eclipse.jst.jsf.test.util/src/org/eclipse/jst/jsf/test/util/ConfigurableTestSuite.java
index 9112230..7a72cb2 100644
--- a/jsf/tests/org.eclipse.jst.jsf.test.util/src/org/eclipse/jst/jsf/test/util/ConfigurableTestSuite.java
+++ b/jsf/tests/org.eclipse.jst.jsf.test.util/src/org/eclipse/jst/jsf/test/util/ConfigurableTestSuite.java
@@ -26,11 +26,11 @@
      * @param theClass
      * @param name
      */
-    public ConfigurableTestSuite(Class theClass, String name) {
+    public ConfigurableTestSuite(Class<?> theClass, String name) {
         super(theClass, name);
     }
 
-    public ConfigurableTestSuite(Class theClass)
+    public ConfigurableTestSuite(Class<?> theClass)
     {
         super(theClass);
     }
diff --git a/jsf/tests/org.eclipse.jst.jsf.test.util/src/org/eclipse/jst/jsf/test/util/JSFTestUtil.java b/jsf/tests/org.eclipse.jst.jsf.test.util/src/org/eclipse/jst/jsf/test/util/JSFTestUtil.java
index cb202f0..8b2496d 100644
--- a/jsf/tests/org.eclipse.jst.jsf.test.util/src/org/eclipse/jst/jsf/test/util/JSFTestUtil.java
+++ b/jsf/tests/org.eclipse.jst.jsf.test.util/src/org/eclipse/jst/jsf/test/util/JSFTestUtil.java
@@ -21,13 +21,11 @@
 import java.net.URISyntaxException;
 import java.net.URL;
 import java.util.Arrays;
-import java.util.Properties;
 
 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.core.runtime.internal.adaptor.EclipseEnvironmentInfo;
 import org.eclipse.wst.sse.core.StructuredModelManager;
 import org.eclipse.wst.sse.core.internal.provisional.IModelManager;
 import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
@@ -49,44 +47,6 @@
  */
 public class JSFTestUtil
 {
-	private static final String JSFRUNTIMEJARSDIR = "jsfRuntimeJarsDirectoryV";
-	/**
-	 * Returns true if the environment property holding the name of the directory that points at the 
-	 * runtime jars exist.  
-	 * <p>
-	 * The expected property name is jsfRuntimeJarsDirectoryVXX where XX is the
-	 * JSFVersion.  <br>i.e "jsfRuntimeJarsDirectoryV1.1", or "jsfRuntimeJarsDirectoryV1.2"
-	 * <p>
-	 * It <b>does</b> check for the existence of the directory.<br>
-	 * It <b>does not</b> check for any jars within that directory.
-	 * 
-	 * @param jsfVersion as String.  ie. "1.1", or "1.2"
-	 * @return true if the property is set
-	 */
-	public static boolean isJSFRuntimeJarsDirectoryPropertySet(String jsfVersion) {
-		String dirName = getJSFRuntimeJarsDirectory(jsfVersion);		
-		if (dirName != null && dirName.trim().length() != 0 &&
-			new File(dirName).exists()) {
-				return true;
-		}		
-		return false;
-	}
-	
-	/**
-	 * @param jsfVersion as String.  <br>ie. "1.1" or "1.2"
-	 * @return Directory name for jsf runtime jars.  
-	 * <br>Will be null if not set in JSFRUNTIMEJARSDIRV<b>X.X</b> system property
-	 */
-	public static String getJSFRuntimeJarsDirectory(String jsfVersion) {
-		String propertyName = JSFRUNTIMEJARSDIR+jsfVersion;
-		String res = System.getProperty(propertyName);
-		if (res == null) {
-			//check env var also
-			res = System.getenv(propertyName);			
-		}
-		return res;
-	}
-	
     /**
      * Used to turn off build validation to speed up testing
      * 
diff --git a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/.settings/org.eclipse.jdt.core.prefs b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/.settings/org.eclipse.jdt.core.prefs
index 3a3053c..4855c84 100644
--- a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/.settings/org.eclipse.jdt.core.prefs
+++ b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/.settings/org.eclipse.jdt.core.prefs
@@ -1,4 +1,4 @@
-#Tue May 15 14:58:45 PDT 2007
+#Thu Aug 23 17:30:18 PDT 2007
 eclipse.preferences.version=1
 instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true
 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
@@ -35,14 +35,14 @@
 org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
 org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
 org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
 org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
 org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
 org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
 org.eclipse.jdt.core.compiler.problem.typeParameterHiding=ignore
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
 org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
 org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
 org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
diff --git a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/base/BaseTestCase.java b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/base/BaseTestCase.java
index 3f99762..017ddef 100644
--- a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/base/BaseTestCase.java
+++ b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/base/BaseTestCase.java
@@ -32,7 +32,7 @@
 import org.eclipse.jst.jsf.context.resolver.structureddocument.internal.ITextRegionContextResolver;
 import org.eclipse.jst.jsf.context.structureddocument.IStructuredDocumentContext;
 import org.eclipse.jst.jsf.context.structureddocument.IStructuredDocumentContextFactory;
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.core.internal.JSFCorePlugin;
 import org.eclipse.jst.jsf.core.jsfappconfig.JSFAppConfigManager;
 import org.eclipse.jst.jsf.core.tests.util.JSFFacetedTestEnvironment;
@@ -62,12 +62,12 @@
     public static final String      PROXY_SETTING_PORT = "proxySettings_Port";
     public static final String      JSF_FACET_VERSION  = "jsfFacetVersion";    
     
-    private final String            _defaultJSFVersion;
+    private final JSFVersion            _defaultJSFVersion;
     
     /**
      * Default constructor
      */
-    public BaseTestCase(String defaultJSFVersion)
+    public BaseTestCase(JSFVersion defaultJSFVersion)
     {
         super();
         _defaultJSFVersion = defaultJSFVersion;
@@ -76,7 +76,7 @@
 	/**
 	 * @param name
 	 */
-	public BaseTestCase(String name, String defaultJSFVersion) {
+	public BaseTestCase(String name, JSFVersion defaultJSFVersion) {
         super(name);
         _defaultJSFVersion = defaultJSFVersion;
     }
@@ -120,8 +120,8 @@
 
         // if JSF 1.1, use web facet 2.4, if higher then use 2.5
         final String webProjVersion = 
-            (IJSFCoreConstants.FACET_VERSION_1_0.equals(_configuration.getJsfVersion())
-                    || IJSFCoreConstants.FACET_VERSION_1_1.equals(_configuration.getJsfVersion()))
+            (_configuration.getJsfVersion() == JSFVersion.V1_0
+                    || _configuration.getJsfVersion() == JSFVersion.V1_1)
                 ? "2.4" : "2.5";
         
         _testEnv = new WebProjectTestEnvironment
@@ -262,10 +262,10 @@
                 JSFAppConfigManager.getInstance(_jdtTestEnv.getProjectEnvironment().getTestProject());
             assertNotNull(cfgManager);
             
-            List mbeans = cfgManager.getManagedBeans();
-            Map  nameTest = new HashMap();
+            List<?> mbeans = cfgManager.getManagedBeans();
+            Map<String, ManagedBeanType>  nameTest = new HashMap<String, ManagedBeanType>();
             
-            for (final Iterator it = mbeans.iterator(); it.hasNext();)
+            for (final Iterator<?> it = mbeans.iterator(); it.hasNext();)
             {
                 ManagedBeanType  mbean = (ManagedBeanType) it.next();
                 nameTest.put(mbean.getManagedBeanName().getTextContent(), mbean);
@@ -330,7 +330,7 @@
      * @param expectedProblems
      * @return the list of found syntax problems
      */
-    protected List assertSyntaxError(IStructuredDocument document, 
+    protected List<IMessage> assertSyntaxError(IStructuredDocument document, 
             int docPos, 
             IFile file, 
             int expectedProblems)
@@ -348,7 +348,7 @@
      * @param expectedProblems
      * @return the list of syntax problems
      */
-    protected List assertSyntaxWarning(IStructuredDocument document, 
+    protected List<IMessage> assertSyntaxWarning(IStructuredDocument document, 
                                           int docPos, 
                                           IFile file, 
                                           int expectedProblems)
@@ -369,7 +369,7 @@
      * @param expectedMaxSeverity
      * @return the (possibly empty) list of problems
      */
-    protected List assertSyntaxProblems(IStructuredDocument document, 
+    protected List<IMessage> assertSyntaxProblems(IStructuredDocument document, 
                                           int docPos, 
                                           IFile file, 
                                           int expectedProblems,
@@ -379,13 +379,13 @@
             createELValidator(document, docPos, file);
         validator.validateXMLNode();
         
-        final List problems = validator.getSyntaxProblems();
+        final List<IMessage> problems = validator.getSyntaxProblems();
         assertEquals(expectedProblems, problems.size());
         int worstSeverity = 0;
         
-        for (final Iterator it = problems.iterator(); it.hasNext();)
+        for (final Iterator<IMessage> it = problems.iterator(); it.hasNext();)
         {
-            IMessage message = (IMessage) it.next();
+            IMessage message = it.next();
             
             // for some reason, the number values are lower for higher severity
             // constants
@@ -455,7 +455,7 @@
      * @param expectedProblems 
      * @return the list of semantic warnings
      */
-    protected List assertSemanticError(IStructuredDocument document, int docPos, IFile file, String expectedSignature, int expectedProblems)
+    protected List<IMessage> assertSemanticError(IStructuredDocument document, int docPos, IFile file, String expectedSignature, int expectedProblems)
     {
         return assertSemanticProblems(document, docPos, file, expectedSignature, expectedProblems, IMessage.HIGH_SEVERITY/* "high" is Error for some reason*/);
     }
@@ -473,7 +473,7 @@
      * @param expectedProblems 
      * @return the list of semantic warnings
      */
-    protected List assertSemanticWarning(IStructuredDocument document, int docPos, IFile file, String expectedSignature, int expectedProblems)
+    protected List<IMessage> assertSemanticWarning(IStructuredDocument document, int docPos, IFile file, String expectedSignature, int expectedProblems)
     {
         return assertSemanticProblems(document, docPos, file, expectedSignature, expectedProblems, IMessage.NORMAL_SEVERITY/* "normal" is Warning for some reason*/);
     }
@@ -487,7 +487,7 @@
      * @param expectedMaxSeverity
      * @return the list of semantic problems found
      */
-    protected List assertSemanticProblems(final IStructuredDocument document, 
+    protected List<IMessage> assertSemanticProblems(final IStructuredDocument document, 
                                           final int docPos, 
                                           final IFile file, 
                                           final String expectedSignature, 
@@ -505,13 +505,13 @@
         }
 
         assertEquals(0, validator.getSyntaxProblems().size());
-        final List problems = validator.getSemanticValidator().getMessages();
+        final List<IMessage> problems = validator.getSemanticValidator().getMessages();
         assertEquals(expectedProblems, problems.size());
         int worstSeverity = 0;
 
-        for (final Iterator it = problems.iterator(); it.hasNext();)
+        for (final Iterator<IMessage> it = problems.iterator(); it.hasNext();)
         {
-            IMessage message = (IMessage) it.next();
+            IMessage message = it.next();
             
             // for some reason, the number values are lower for higher severity
             // constants
@@ -529,7 +529,7 @@
      * @param problems
      * @param code
      */
-    protected void assertContainsProblem(List problems, int code)
+    protected void assertContainsProblem(List<IMessage> problems, int code)
     {
         assertContainsProblem(problems, code, -1, -1);
     }
@@ -544,13 +544,13 @@
      * @param startPos
      * @param length
      */
-    protected void assertContainsProblem(List problems, int code, int startPos, int length)
+    protected void assertContainsProblem(List<IMessage> problems, int code, int startPos, int length)
     {
-        Set  probsFound = new HashSet();
+        Set<Integer>  probsFound = new HashSet<Integer>();
         
-        for (final Iterator it = problems.iterator(); it.hasNext();)
+        for (final Iterator<IMessage> it = problems.iterator(); it.hasNext();)
         {
-            Object probObj = it.next();
+            IMessage probObj = it.next();
             
             if (probObj instanceof IELLocalizedMessage)
             {
@@ -599,9 +599,9 @@
     {
         private final String  _proxyHostName;
         private final String  _proxyPort;
-        private final String  _jsfVersion;
+        private final JSFVersion  _jsfVersion;
         
-        MyConfiguration(final String proxyHostName, final String proxyPort, final String jsfVersion)
+        MyConfiguration(final String proxyHostName, final String proxyPort, final JSFVersion jsfVersion)
         {
             _proxyHostName = proxyHostName;
             _proxyPort = proxyPort;
@@ -612,7 +612,7 @@
         {
             _proxyHostName = configuration.get(BaseTestCase.PROXY_SETTING_HOST);
             _proxyPort = configuration.get(BaseTestCase.PROXY_SETTING_PORT);
-            _jsfVersion = configuration.get(BaseTestCase.JSF_FACET_VERSION);
+            _jsfVersion = JSFVersion.valueOfString(configuration.get(BaseTestCase.JSF_FACET_VERSION));
         }
         
         public boolean isProxyEnabled()
@@ -628,7 +628,7 @@
             return _proxyPort;
         }
 
-        public String getJsfVersion() {
+        public JSFVersion getJsfVersion() {
             return _jsfVersion;
         }
         
diff --git a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/base/JSPTestCase.java b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/base/JSPTestCase.java
index 0fc570d..917731a 100644
--- a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/base/JSPTestCase.java
+++ b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/base/JSPTestCase.java
@@ -11,6 +11,7 @@
 package org.eclipse.jst.jsf.validation.el.tests.base;
 
 import org.eclipse.core.resources.IFile;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.core.tests.util.JSFFacetedTestEnvironment;
 import org.eclipse.jst.jsf.validation.el.tests.ELValidationTestPlugin;
 
@@ -22,10 +23,10 @@
      * Test config
      */
     private MyConfiguration                 _myConfig;
-    private final       String              _defaultJSFVersion;
+    private final       JSFVersion              _defaultJSFVersion;
     private  final      String              _defaultFacesConfigFile; 
     
-    public JSPTestCase(final String defaultJSFVersion, final String defaultFacesConfigFile) 
+    public JSPTestCase(final JSFVersion defaultJSFVersion, final String defaultFacesConfigFile) 
     {
         super(defaultJSFVersion);
         _defaultJSFVersion = defaultJSFVersion;
@@ -53,7 +54,7 @@
     protected JSFFacetedTestEnvironment configureJSFEnvironment() throws Exception
     {
         JSFFacetedTestEnvironment jsfFacedEnv = new JSFFacetedTestEnvironment(_testEnv);
-        jsfFacedEnv.initialize(_myConfig.getFacetVersion());
+        jsfFacedEnv.initialize(_myConfig.getFacetVersion().toString());
 
         _testEnv.loadResourceInWebRoot(ELValidationTestPlugin.getDefault().getBundle(),
                                       _myConfig.getFacesConfigFile(), 
@@ -70,10 +71,10 @@
     
     protected static class MyConfiguration
     {
-        private final String        _facetVersion;
+        private final JSFVersion    _facetVersion;
         private final String        _facesConfigFile;
         
-        MyConfiguration(String facetVersion, String facesConfigFile) 
+        MyConfiguration(JSFVersion facetVersion, String facesConfigFile) 
         {
             super();
             _facetVersion = facetVersion;
@@ -82,11 +83,11 @@
         
         MyConfiguration(TestConfiguration testConfiguration)
         {
-            _facetVersion = testConfiguration.get(BaseTestCase.JSF_FACET_VERSION);
+            _facetVersion = JSFVersion.valueOfString(testConfiguration.get(BaseTestCase.JSF_FACET_VERSION));
             _facesConfigFile = testConfiguration.get(FACES_CONFIG_FILE);
         }
 
-        public String getFacetVersion() {
+        public JSFVersion getFacetVersion() {
             return _facetVersion;
         }
 
diff --git a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/base/SingleJSPTestCase.java b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/base/SingleJSPTestCase.java
index e2ccc7f..164bbc1 100644
--- a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/base/SingleJSPTestCase.java
+++ b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/base/SingleJSPTestCase.java
@@ -14,9 +14,11 @@
 import java.util.List;
 
 import org.eclipse.core.resources.IFile;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.wst.sse.core.StructuredModelManager;
 import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
 
 public abstract class SingleJSPTestCase extends JSPTestCase 
 {
@@ -48,7 +50,7 @@
     protected final String                      _destFileName;
     
 
-    protected SingleJSPTestCase(final String srcFileName, final String destFileName, final String defaultJSFVersion, final String defaultFacesConfigFile)
+    protected SingleJSPTestCase(final String srcFileName, final String destFileName, final JSFVersion defaultJSFVersion, final String defaultFacesConfigFile)
     {
         super(defaultJSFVersion, defaultFacesConfigFile);
         _srcFileName = srcFileName;
@@ -124,7 +126,7 @@
      * @param expectedProblems
      * @return the list of syntax errors (may be empty)
      */
-    protected List assertSyntaxError(int docPos, int expectedProblems)
+    protected List<IMessage> assertSyntaxError(int docPos, int expectedProblems)
     {
         return super.assertSyntaxError(_structuredDocument, docPos, _testJSP, 
                 expectedProblems);
@@ -138,7 +140,7 @@
      * @param expectedProblems
      * @return the list of syntax warnings found (may be empty)
      */
-    protected List assertSyntaxWarning(int docPos, int expectedProblems)
+    protected List<IMessage> assertSyntaxWarning(int docPos, int expectedProblems)
     {
         return super.assertSyntaxWarning(_structuredDocument, docPos, _testJSP, 
                 expectedProblems);
@@ -153,7 +155,7 @@
      * @param expectedProblems
      * @return the list of errors found
      */
-    protected List assertSemanticError(int docPos, String expectedSignature, int expectedProblems) {
+    protected List<IMessage> assertSemanticError(int docPos, String expectedSignature, int expectedProblems) {
         return super.assertSemanticError(_structuredDocument, docPos, _testJSP, expectedSignature,
                 expectedProblems);
     }
@@ -167,7 +169,7 @@
      * @param expectedProblems
      * @return the list of errors found
      */
-    protected List assertSemanticWarning(int docPos, String expectedSignature, int expectedProblems) {
+    protected List<IMessage> assertSemanticWarning(int docPos, String expectedSignature, int expectedProblems) {
         return super.assertSemanticWarning(_structuredDocument, docPos, _testJSP, expectedSignature,
                 expectedProblems);
     }
diff --git a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/ArithmeticAddTestCase.java b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/ArithmeticAddTestCase.java
index ae0005e..2c6a1ba 100644
--- a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/ArithmeticAddTestCase.java
+++ b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/ArithmeticAddTestCase.java
@@ -5,9 +5,10 @@
 
 import org.eclipse.jdt.core.Signature;
 import org.eclipse.jst.jsf.common.internal.types.TypeConstants;
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.validation.el.tests.base.SingleJSPTestCase;
 import org.eclipse.jst.jsf.validation.internal.el.diagnostics.DiagnosticFactory;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
 
 /**
  * Test suite for testing validation of arithmetic add
@@ -19,7 +20,7 @@
 {
     public ArithmeticAddTestCase()
     {
-        super("/testdata/jsps/arithmeticAdd.jsp.data", "/arithmeticAdd.jsp", IJSFCoreConstants.FACET_VERSION_1_1, FACES_CONFIG_FILE_NAME_1_1);
+        super("/testdata/jsps/arithmeticAdd.jsp.data", "/arithmeticAdd.jsp", JSFVersion.V1_1, FACES_CONFIG_FILE_NAME_1_1);
     }
     protected void setUp() throws Exception 
     {
@@ -66,7 +67,7 @@
 
     public void testWarningExprs()
     {
-        List list = assertSemanticWarning(1381, Signature.SIG_LONG, 1);
+        List<IMessage> list = assertSemanticWarning(1381, Signature.SIG_LONG, 1);
         assertContainsProblem(list, DiagnosticFactory.BINARY_OP_CONSTANT_EXPRESSION_ALWAYS_EVAL_SAME_ID);
 
         list = assertSemanticWarning(1417, Signature.SIG_DOUBLE,  1);
@@ -87,7 +88,7 @@
     
     public void testErrorExprs()
     {
-        List list = assertSemanticError(1651, null, 1);
+        List<IMessage> list = assertSemanticError(1651, null, 1);
         assertContainsProblem(list, DiagnosticFactory.BINARY_OP_COULD_NOT_MAKE_NUMERIC_COERCION_ID);
         
         list = assertSemanticError(1690, null, 1);
diff --git a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/ArithmeticDivideTestCase.java b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/ArithmeticDivideTestCase.java
index 7f24e22..eb1c731 100644
--- a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/ArithmeticDivideTestCase.java
+++ b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/ArithmeticDivideTestCase.java
@@ -4,9 +4,10 @@
 
 import org.eclipse.jdt.core.Signature;
 import org.eclipse.jst.jsf.common.internal.types.TypeConstants;
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.validation.el.tests.base.SingleJSPTestCase;
 import org.eclipse.jst.jsf.validation.internal.el.diagnostics.DiagnosticFactory;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
 
 
 /**
@@ -18,7 +19,7 @@
 {
     public ArithmeticDivideTestCase() 
     {
-        super("/testdata/jsps/arithmeticDivide.jsp.data", "/WEB-INF/arithmeticDivide.jsp", IJSFCoreConstants.FACET_VERSION_1_1, FACES_CONFIG_FILE_NAME_1_1);
+        super("/testdata/jsps/arithmeticDivide.jsp.data", "/WEB-INF/arithmeticDivide.jsp", JSFVersion.V1_1, FACES_CONFIG_FILE_NAME_1_1);
     }
 
     protected void setUp() throws Exception 
@@ -86,7 +87,7 @@
     
     public void testWarningExprs()
     {
-        List list = assertSemanticWarning(1542, Signature.SIG_DOUBLE, 1);
+        List<IMessage> list = assertSemanticWarning(1542, Signature.SIG_DOUBLE, 1);
         assertContainsProblem(list, DiagnosticFactory.BINARY_OP_CONSTANT_EXPRESSION_ALWAYS_EVAL_SAME_ID);
 
         list = assertSemanticWarning(1578, Signature.SIG_DOUBLE, 1);
@@ -116,7 +117,7 @@
     
     public void testErrorExprs()
     {
-        List list = assertSemanticError(1945, null, 1);
+        List<IMessage> list = assertSemanticError(1945, null, 1);
         assertContainsProblem(list, DiagnosticFactory.BINARY_OP_COULD_NOT_MAKE_NUMERIC_COERCION_ID);
 
         list = assertSemanticError(1984, null, 1);
diff --git a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/ArithmeticMinusTestCase.java b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/ArithmeticMinusTestCase.java
index 34604e7..bb2da7e 100644
--- a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/ArithmeticMinusTestCase.java
+++ b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/ArithmeticMinusTestCase.java
@@ -4,9 +4,10 @@
 
 import org.eclipse.jdt.core.Signature;
 import org.eclipse.jst.jsf.common.internal.types.TypeConstants;
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.validation.el.tests.base.SingleJSPTestCase;
 import org.eclipse.jst.jsf.validation.internal.el.diagnostics.DiagnosticFactory;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
 
 /**
  * Test suite for arithmetic subtract.
@@ -18,7 +19,7 @@
 {
     public ArithmeticMinusTestCase() 
     {
-        super("/testdata/jsps/arithmeticMinus.jsp.data", "/WEB-INF/arithmeticMinus.jsp", IJSFCoreConstants.FACET_VERSION_1_1, FACES_CONFIG_FILE_NAME_1_1);
+        super("/testdata/jsps/arithmeticMinus.jsp.data", "/WEB-INF/arithmeticMinus.jsp", JSFVersion.V1_1, FACES_CONFIG_FILE_NAME_1_1);
     }
 
     protected void setUp() throws Exception 
@@ -66,7 +67,7 @@
     
     public void testWarningExprs()
     {
-        List list = assertSemanticWarning(1336, Signature.SIG_LONG, 1);
+        List<IMessage> list = assertSemanticWarning(1336, Signature.SIG_LONG, 1);
         assertContainsProblem(list, DiagnosticFactory.BINARY_OP_CONSTANT_EXPRESSION_ALWAYS_EVAL_SAME_ID);
 
         list = assertSemanticWarning(1372, Signature.SIG_DOUBLE, 1);
@@ -87,7 +88,7 @@
     
     public void testErrorExprs()
     {
-        List list = assertSemanticError(1606, null, 1);
+        List<IMessage> list = assertSemanticError(1606, null, 1);
         assertContainsProblem(list, DiagnosticFactory.BINARY_OP_COULD_NOT_MAKE_NUMERIC_COERCION_ID);
 
         list = assertSemanticError(1645, null, 1);
diff --git a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/ArithmeticModuloTestCase.java b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/ArithmeticModuloTestCase.java
index b5f9e59..bdc47b5 100644
--- a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/ArithmeticModuloTestCase.java
+++ b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/ArithmeticModuloTestCase.java
@@ -4,9 +4,10 @@
 
 import org.eclipse.jdt.core.Signature;
 import org.eclipse.jst.jsf.common.internal.types.TypeConstants;
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.validation.el.tests.base.SingleJSPTestCase;
 import org.eclipse.jst.jsf.validation.internal.el.diagnostics.DiagnosticFactory;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
 
 /**
  * Test suite for arithmetic remainder (mod, %)
@@ -17,7 +18,7 @@
 {
     public ArithmeticModuloTestCase() 
     {
-        super("/testdata/jsps/arithmeticModulo.jsp.data", "/WEB-INF/arithmeticModulo.jsp", IJSFCoreConstants.FACET_VERSION_1_1,FACES_CONFIG_FILE_NAME_1_1);
+        super("/testdata/jsps/arithmeticModulo.jsp.data", "/WEB-INF/arithmeticModulo.jsp", JSFVersion.V1_1,FACES_CONFIG_FILE_NAME_1_1);
     }
 
     protected void setUp() throws Exception 
@@ -81,7 +82,7 @@
     
     public void testWarningExprs()
     {
-        List list = assertSemanticWarning(1472, Signature.SIG_LONG, 1);
+        List<IMessage> list = assertSemanticWarning(1472, Signature.SIG_LONG, 1);
         assertContainsProblem(list, DiagnosticFactory.BINARY_OP_CONSTANT_EXPRESSION_ALWAYS_EVAL_SAME_ID);
 
         list = assertSemanticWarning(1508, Signature.SIG_LONG, 1);
@@ -109,7 +110,7 @@
 
     public void testErrorExprs()
     {
-        List list = assertSemanticError(1829, null, 1);
+        List<IMessage> list = assertSemanticError(1829, null, 1);
         assertContainsProblem(list, DiagnosticFactory.BINARY_OP_COULD_NOT_MAKE_NUMERIC_COERCION_ID);
         
         list = assertSemanticError(1868, null, 1);
diff --git a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/ArithmeticMultiplyTestCase.java b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/ArithmeticMultiplyTestCase.java
index d398cc2..58fa757 100644
--- a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/ArithmeticMultiplyTestCase.java
+++ b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/ArithmeticMultiplyTestCase.java
@@ -4,9 +4,10 @@
 
 import org.eclipse.jdt.core.Signature;
 import org.eclipse.jst.jsf.common.internal.types.TypeConstants;
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.validation.el.tests.base.SingleJSPTestCase;
 import org.eclipse.jst.jsf.validation.internal.el.diagnostics.DiagnosticFactory;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
 
 /**
  * Test cases for arithmetic multiply
@@ -18,7 +19,7 @@
 {
     public ArithmeticMultiplyTestCase() 
     {
-        super("/testdata/jsps/arithmeticMultiply.jsp.data", "/WEB-INF/arithmeticMultiply.jsp", IJSFCoreConstants.FACET_VERSION_1_1,FACES_CONFIG_FILE_NAME_1_1);
+        super("/testdata/jsps/arithmeticMultiply.jsp.data", "/WEB-INF/arithmeticMultiply.jsp", JSFVersion.V1_1,FACES_CONFIG_FILE_NAME_1_1);
     }
 
     protected void setUp() throws Exception 
@@ -66,7 +67,7 @@
     
     public void testWarningExprs()
     {
-        List list = assertSemanticWarning(1336, Signature.SIG_LONG, 1);
+        List<IMessage> list = assertSemanticWarning(1336, Signature.SIG_LONG, 1);
         assertContainsProblem(list, DiagnosticFactory.BINARY_OP_CONSTANT_EXPRESSION_ALWAYS_EVAL_SAME_ID);
         
         list = assertSemanticWarning(1372, Signature.SIG_DOUBLE, 1);
@@ -87,7 +88,7 @@
     
     public void testErrorExprs()
     {
-        List list = assertSemanticError(1609, null, 1);
+        List<IMessage> list = assertSemanticError(1609, null, 1);
         assertContainsProblem(list, DiagnosticFactory.BINARY_OP_COULD_NOT_MAKE_NUMERIC_COERCION_ID);
 
         list = assertSemanticError(1648, null, 1);
diff --git a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/AssignabilityTestCase.java b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/AssignabilityTestCase.java
index 832b5ab..3a41726 100644
--- a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/AssignabilityTestCase.java
+++ b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/AssignabilityTestCase.java
@@ -3,7 +3,7 @@
 import org.eclipse.jdt.core.Signature;
 import org.eclipse.jst.jsf.common.internal.types.IAssignable;
 import org.eclipse.jst.jsf.common.internal.types.TypeConstants;
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.validation.el.tests.base.SingleJSPTestCase;
 
 /**
@@ -15,7 +15,7 @@
 {
     public AssignabilityTestCase() 
     {
-        super("/testdata/jsps/assignability.jsp.data", "/assignability.jsp", IJSFCoreConstants.FACET_VERSION_1_1,FACES_CONFIG_FILE_NAME_1_1);
+        super("/testdata/jsps/assignability.jsp.data", "/assignability.jsp", JSFVersion.V1_1,FACES_CONFIG_FILE_NAME_1_1);
     }
 
     protected void setUp() throws Exception
diff --git a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/BadSyntaxTestCase.java b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/BadSyntaxTestCase.java
index ab9de0a..107e4b8 100644
--- a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/BadSyntaxTestCase.java
+++ b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/BadSyntaxTestCase.java
@@ -2,9 +2,10 @@
 
 import java.util.List;
 
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.validation.el.tests.base.SingleJSPTestCase;
 import org.eclipse.jst.jsf.validation.internal.el.diagnostics.DiagnosticFactory;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
 
 /**
  * Test cases for syntax error testing
@@ -15,7 +16,7 @@
 public class BadSyntaxTestCase extends SingleJSPTestCase 
 {
     public BadSyntaxTestCase() {
-        super("/testdata/jsps/badSyntax.jsp.data", "/badSyntax.jsp", IJSFCoreConstants.FACET_VERSION_1_1,FACES_CONFIG_FILE_NAME_1_1);
+        super("/testdata/jsps/badSyntax.jsp.data", "/badSyntax.jsp", JSFVersion.V1_1,FACES_CONFIG_FILE_NAME_1_1);
     }
 
     protected void setUp() throws Exception
@@ -40,7 +41,7 @@
 
     public void testWarningExprs() 
     {
-        List list = assertSyntaxWarning(870,1);
+        List<IMessage> list = assertSyntaxWarning(870,1);
         assertContainsProblem(list, DiagnosticFactory.GENERAL_SYNTAX_ERROR_ID);
         
         list = assertSyntaxWarning(902,1);
diff --git a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/BeanPropertyResolutionTestCase.java b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/BeanPropertyResolutionTestCase.java
index 81773f9..044fafa 100644
--- a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/BeanPropertyResolutionTestCase.java
+++ b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/BeanPropertyResolutionTestCase.java
@@ -5,9 +5,10 @@
 import org.eclipse.jdt.core.Signature;
 import org.eclipse.jst.jsf.common.internal.types.IAssignable;
 import org.eclipse.jst.jsf.common.internal.types.TypeConstants;
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.validation.el.tests.base.SingleJSPTestCase;
 import org.eclipse.jst.jsf.validation.internal.el.diagnostics.DiagnosticFactory;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
 
 /**
  * Test cases for bean property resolution
@@ -17,7 +18,7 @@
 public class BeanPropertyResolutionTestCase extends SingleJSPTestCase 
 {
     public BeanPropertyResolutionTestCase() {
-        super("/testdata/jsps/beanPropertyResolution.jsp.data", "/beanPropertyResolution.jsp", IJSFCoreConstants.FACET_VERSION_1_1,FACES_CONFIG_FILE_NAME_1_1);
+        super("/testdata/jsps/beanPropertyResolution.jsp.data", "/beanPropertyResolution.jsp", JSFVersion.V1_1,FACES_CONFIG_FILE_NAME_1_1);
     }
 
     /**
@@ -28,7 +29,7 @@
      */
     protected BeanPropertyResolutionTestCase(final String srcFile, final String destFile)
     {
-        super(srcFile,destFile, IJSFCoreConstants.FACET_VERSION_1_1,FACES_CONFIG_FILE_NAME_1_1);
+        super(srcFile,destFile, JSFVersion.V1_1,FACES_CONFIG_FILE_NAME_1_1);
     }
     
     protected void setUp() throws Exception
@@ -146,7 +147,7 @@
 
     public void testWarningExprs() 
     {
-        List list = assertSemanticWarning(3468,null,1);
+        List<IMessage> list = assertSemanticWarning(3468,null,1);
         assertContainsProblem(list, DiagnosticFactory.MEMBER_NOT_FOUND_ID);
 
         list = assertSemanticWarning(3531,null,1);
diff --git a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/BeanVariableResolutionTestCase.java b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/BeanVariableResolutionTestCase.java
index 9a24410..0e22163 100644
--- a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/BeanVariableResolutionTestCase.java
+++ b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/BeanVariableResolutionTestCase.java
@@ -2,9 +2,10 @@
 
 import java.util.List;
 
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.validation.el.tests.base.SingleJSPTestCase;
 import org.eclipse.jst.jsf.validation.internal.el.diagnostics.DiagnosticFactory;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
 
 /**
  * Test cases for bean variable resolution
@@ -15,7 +16,7 @@
 public class BeanVariableResolutionTestCase extends SingleJSPTestCase 
 {
     public BeanVariableResolutionTestCase() {
-        super("/testdata/jsps/beanVariableResolution.jsp.data", "/beanVariableResolution.jsp", IJSFCoreConstants.FACET_VERSION_1_1,FACES_CONFIG_FILE_NAME_1_1);
+        super("/testdata/jsps/beanVariableResolution.jsp.data", "/beanVariableResolution.jsp", JSFVersion.V1_1,FACES_CONFIG_FILE_NAME_1_1);
     }
 
     protected void setUp() throws Exception
@@ -50,7 +51,7 @@
 
     public void testWarningExprs() 
     {
-        List list = assertSemanticWarning(878, null, 1);
+        List<IMessage> list = assertSemanticWarning(878, null, 1);
         assertContainsProblem(list,DiagnosticFactory.VARIABLE_NOT_FOUND_ID);
         
         list = assertSemanticWarning(919, null, 1);
diff --git a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/BracketOperatorTestCase.java b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/BracketOperatorTestCase.java
index b83c653..20f9954 100644
--- a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/BracketOperatorTestCase.java
+++ b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/BracketOperatorTestCase.java
@@ -14,9 +14,10 @@
 
 import org.eclipse.jdt.core.Signature;
 import org.eclipse.jst.jsf.common.internal.types.TypeConstants;
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.validation.el.tests.base.SingleJSPTestCase;
 import org.eclipse.jst.jsf.validation.internal.el.diagnostics.DiagnosticFactory;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
 
 /**
  * Main test cases for the bracket operator -- x['y']
@@ -27,7 +28,7 @@
 {
     public BracketOperatorTestCase() 
     {
-        super("/testdata/jsps/bracketOperator.jsp.data", "/bracketOperator.jsp", IJSFCoreConstants.FACET_VERSION_1_1,FACES_CONFIG_FILE_NAME_1_1);
+        super("/testdata/jsps/bracketOperator.jsp.data", "/bracketOperator.jsp", JSFVersion.V1_1,FACES_CONFIG_FILE_NAME_1_1);
     }
 
     protected void setUp() throws Exception
@@ -144,7 +145,7 @@
     public void testWarningExprs() 
     {
 
-        List list = assertSemanticWarning(3160, null, 1);
+        List<IMessage> list = assertSemanticWarning(3160, null, 1);
         assertContainsProblem(list, DiagnosticFactory.MEMBER_NOT_FOUND_ID);
         
         list = assertSemanticWarning(3205, null, 1);
@@ -196,7 +197,7 @@
     
     public void testErrorExprs() 
     { 
-        List list = assertSemanticError(4260, null, 1);
+        List<IMessage> list = assertSemanticError(4260, null, 1);
         assertContainsProblem(list, DiagnosticFactory.BINARY_OP_COULD_NOT_MAKE_NUMERIC_COERCION_ID);
 
         list = assertSemanticError(4344, null, 1);
diff --git a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/BuiltInSymbolsTestCase.java b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/BuiltInSymbolsTestCase.java
index bd45b5d..947a0fc 100644
--- a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/BuiltInSymbolsTestCase.java
+++ b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/BuiltInSymbolsTestCase.java
@@ -4,9 +4,10 @@
 
 import org.eclipse.jdt.core.Signature;
 import org.eclipse.jst.jsf.common.internal.types.TypeConstants;
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.validation.el.tests.base.SingleJSPTestCase;
 import org.eclipse.jst.jsf.validation.internal.el.diagnostics.DiagnosticFactory;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
 
 /**
  * Test cases for built-in (implicit) symbol resolution
@@ -18,7 +19,7 @@
 {
     public BuiltInSymbolsTestCase() 
     {
-        super("/testdata/jsps/builtinSymbols.jsp.data", "/builtinSymbols.jsp", IJSFCoreConstants.FACET_VERSION_1_1,FACES_CONFIG_FILE_NAME_1_1);
+        super("/testdata/jsps/builtinSymbols.jsp.data", "/builtinSymbols.jsp", JSFVersion.V1_1,FACES_CONFIG_FILE_NAME_1_1);
     }
 
     protected void setUp() throws Exception
@@ -142,7 +143,7 @@
     }
     public void testWarningExprs() 
     {
-        List list = assertSemanticWarning(3661,null,1);
+        List<IMessage> list = assertSemanticWarning(3661,null,1);
         assertContainsProblem(list, DiagnosticFactory.MEMBER_NOT_FOUND_ID);
 
         list = assertSemanticWarning(3722,null,1);
@@ -186,7 +187,7 @@
     }
     public void testErrorExprs() 
     {
-        List list = assertSemanticError(4507,null,1);
+        List<IMessage> list = assertSemanticError(4507,null,1);
         assertContainsProblem(list, DiagnosticFactory.UNARY_OP_CANNOT_COERCE_ARGUMENT_TO_BOOLEAN_ID);
     }
 }
diff --git a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/DataTableResolutionTestCase.java b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/DataTableResolutionTestCase.java
index 52044cf..c7f9046 100644
--- a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/DataTableResolutionTestCase.java
+++ b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/DataTableResolutionTestCase.java
@@ -3,15 +3,16 @@
 import java.util.List;
 
 import org.eclipse.jst.jsf.common.internal.types.TypeConstants;
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.validation.el.tests.base.SingleJSPTestCase;
 import org.eclipse.jst.jsf.validation.internal.el.diagnostics.DiagnosticFactory;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
 
 public class DataTableResolutionTestCase extends SingleJSPTestCase 
 {
     public DataTableResolutionTestCase() 
     {
-        super("/testdata/jsps/dataTableResolution.jsp.data", "/dataTableResolution.jsp", IJSFCoreConstants.FACET_VERSION_1_1,FACES_CONFIG_FILE_NAME_1_1);
+        super("/testdata/jsps/dataTableResolution.jsp.data", "/dataTableResolution.jsp", JSFVersion.V1_1,FACES_CONFIG_FILE_NAME_1_1);
     }
 
     protected void setUp() throws Exception
@@ -38,7 +39,7 @@
 
     public void testWarningExprs() 
     {
-        List problems = assertSemanticWarning(1606, null, 1);
+        List<IMessage> problems = assertSemanticWarning(1606, null, 1);
         assertContainsProblem(problems, DiagnosticFactory.VARIABLE_NOT_FOUND_ID);
         
         problems = assertSemanticWarning(1745, null, 1);
diff --git a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/GenericsTestCase.java b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/GenericsTestCase.java
index 0bc305f..a5c027b 100644
--- a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/GenericsTestCase.java
+++ b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/GenericsTestCase.java
@@ -1,13 +1,13 @@
 package org.eclipse.jst.jsf.validation.el.tests.jsp;
 
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.validation.el.tests.base.SingleJSPTestCase;
 
 public class GenericsTestCase extends SingleJSPTestCase 
 {
     public GenericsTestCase()
     {
-        super("/testdata/jsps/propertiesOfMaps.jsp.data", "/propertiesOfMaps.jsp", IJSFCoreConstants.FACET_VERSION_1_1,FACES_CONFIG_FILE_NAME_1_1);
+        super("/testdata/jsps/propertiesOfMaps.jsp.data", "/propertiesOfMaps.jsp", JSFVersion.V1_1,FACES_CONFIG_FILE_NAME_1_1);
     }
 
     protected void setUp() throws Exception
diff --git a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/GreaterThanEqTestCase.java b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/GreaterThanEqTestCase.java
index bf69aae..92d6c7d 100644
--- a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/GreaterThanEqTestCase.java
+++ b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/GreaterThanEqTestCase.java
@@ -3,9 +3,10 @@
 import java.util.List;
 
 import org.eclipse.jdt.core.Signature;
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.validation.el.tests.base.SingleJSPTestCase;
 import org.eclipse.jst.jsf.validation.internal.el.diagnostics.DiagnosticFactory;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
 
 /**
  * Test cases for greater than or equal (ge, >=)
@@ -17,7 +18,7 @@
 
     public GreaterThanEqTestCase()
     {
-        super("/testdata/jsps/greaterThanEq.jsp.data", "/greaterThanEq.jsp", IJSFCoreConstants.FACET_VERSION_1_1,FACES_CONFIG_FILE_NAME_1_1);
+        super("/testdata/jsps/greaterThanEq.jsp.data", "/greaterThanEq.jsp", JSFVersion.V1_1,FACES_CONFIG_FILE_NAME_1_1);
     }
 
     protected void setUp() throws Exception 
@@ -103,7 +104,7 @@
 
     public void testWarningExprs() 
     {
-        List list = assertSemanticWarning(2070, Signature.SIG_BOOLEAN, 1);
+        List<IMessage> list = assertSemanticWarning(2070, Signature.SIG_BOOLEAN, 1);
         assertContainsProblem(list, DiagnosticFactory.BINARY_OP_CONSTANT_EXPRESSION_ALWAYS_EVAL_SAME_ID);
 
         list = assertSemanticWarning(2107, Signature.SIG_BOOLEAN, 1);
@@ -149,7 +150,7 @@
 
     public void testErrorExprs() 
     {
-        List list = assertSemanticError(2689, null, 1);
+        List<IMessage> list = assertSemanticError(2689, null, 1);
         assertContainsProblem(list, DiagnosticFactory.BINARY_OP_COULD_NOT_MAKE_NUMERIC_COERCION_ID);
 
         list = assertSemanticError(2729, null, 1);
diff --git a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/GreaterThanTestCase.java b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/GreaterThanTestCase.java
index 7ebc79c..e983500 100644
--- a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/GreaterThanTestCase.java
+++ b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/GreaterThanTestCase.java
@@ -3,9 +3,10 @@
 import java.util.List;
 
 import org.eclipse.jdt.core.Signature;
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.validation.el.tests.base.SingleJSPTestCase;
 import org.eclipse.jst.jsf.validation.internal.el.diagnostics.DiagnosticFactory;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
 
 /**
  * Test cases for greater than (gt, >)
@@ -16,7 +17,7 @@
 {
     public GreaterThanTestCase() 
     {
-        super("/testdata/jsps/greaterThan.jsp.data", "/greaterThan.jsp", IJSFCoreConstants.FACET_VERSION_1_1,FACES_CONFIG_FILE_NAME_1_1);
+        super("/testdata/jsps/greaterThan.jsp.data", "/greaterThan.jsp", JSFVersion.V1_1,FACES_CONFIG_FILE_NAME_1_1);
     }
 
     protected void setUp() throws Exception 
@@ -101,7 +102,7 @@
 
     public void testWarningExprs() 
     {
-        List list = assertSemanticWarning(2054, Signature.SIG_BOOLEAN, 1);
+        List<IMessage> list = assertSemanticWarning(2054, Signature.SIG_BOOLEAN, 1);
         assertContainsProblem(list, DiagnosticFactory.BINARY_OP_CONSTANT_EXPRESSION_ALWAYS_EVAL_SAME_ID);
 
         list = assertSemanticWarning(2090, Signature.SIG_BOOLEAN, 1);
@@ -146,7 +147,7 @@
 
     public void testErrorExprs() 
     {
-        List list = assertSemanticError(2666, null, 1);
+        List<IMessage> list = assertSemanticError(2666, null, 1);
         assertContainsProblem(list, DiagnosticFactory.BINARY_OP_COULD_NOT_MAKE_NUMERIC_COERCION_ID);
 
         list = assertSemanticError(2705, null, 1);
diff --git a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/JSPFunctionsTestCase.java b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/JSPFunctionsTestCase.java
index 2c755b2..868be06 100644
--- a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/JSPFunctionsTestCase.java
+++ b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/JSPFunctionsTestCase.java
@@ -2,9 +2,10 @@
 
 import java.util.List;
 
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.validation.el.tests.base.SingleJSPTestCase;
 import org.eclipse.jst.jsf.validation.internal.el.diagnostics.DiagnosticFactory;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
 
 /**
  * Test cases for functions
@@ -14,7 +15,7 @@
 public class JSPFunctionsTestCase extends SingleJSPTestCase 
 {
     public JSPFunctionsTestCase() {
-        super("/testdata/jsps/jspFunctions.jsp.data", "/jspFunctions.jsp", IJSFCoreConstants.FACET_VERSION_1_1,FACES_CONFIG_FILE_NAME_1_1);
+        super("/testdata/jsps/jspFunctions.jsp.data", "/jspFunctions.jsp", JSFVersion.V1_1,FACES_CONFIG_FILE_NAME_1_1);
     }
 
     protected void setUp() throws Exception
@@ -43,7 +44,7 @@
     {
         // note: this will change to non-error when functions are properly supported
         // by the parser
-        List list = assertSyntaxWarning(1260, 1);
+        List<IMessage> list = assertSyntaxWarning(1260, 1);
         assertContainsProblem(list, DiagnosticFactory.GENERAL_SYNTAX_ERROR_ID);
 
         list = assertSyntaxWarning(1309, 1);
diff --git a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/LessThanEqTestCase.java b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/LessThanEqTestCase.java
index c6debfe..d850ea0 100644
--- a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/LessThanEqTestCase.java
+++ b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/LessThanEqTestCase.java
@@ -3,9 +3,10 @@
 import java.util.List;
 
 import org.eclipse.jdt.core.Signature;
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.validation.el.tests.base.SingleJSPTestCase;
 import org.eclipse.jst.jsf.validation.internal.el.diagnostics.DiagnosticFactory;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
 
 /**
  * Test cases for less than or equal (<=, le)
@@ -16,7 +17,7 @@
 {
 
     public LessThanEqTestCase() {
-        super("/testdata/jsps/lessThanEq.jsp.data", "/lessThanEq.jsp", IJSFCoreConstants.FACET_VERSION_1_1,FACES_CONFIG_FILE_NAME_1_1);
+        super("/testdata/jsps/lessThanEq.jsp.data", "/lessThanEq.jsp", JSFVersion.V1_1,FACES_CONFIG_FILE_NAME_1_1);
     }
 
     protected void setUp() throws Exception 
@@ -102,7 +103,7 @@
 
     public void testWarningExprs() 
     {
-        List list = assertSemanticWarning(2070, Signature.SIG_BOOLEAN, 1);
+        List<IMessage> list = assertSemanticWarning(2070, Signature.SIG_BOOLEAN, 1);
         assertContainsProblem(list, DiagnosticFactory.BINARY_OP_CONSTANT_EXPRESSION_ALWAYS_EVAL_SAME_ID);
 
         list = assertSemanticWarning(2107, Signature.SIG_BOOLEAN, 1);
@@ -147,7 +148,7 @@
 
     public void testErrorExprs() 
     {
-        List list = assertSemanticError(2689, null, 1);
+        List<IMessage> list = assertSemanticError(2689, null, 1);
         assertContainsProblem(list, DiagnosticFactory.BINARY_OP_COULD_NOT_MAKE_NUMERIC_COERCION_ID);
 
         list = assertSemanticError(2729, null, 1);
diff --git a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/LessThanTestCase.java b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/LessThanTestCase.java
index 87a4008..ae9cd1c 100644
--- a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/LessThanTestCase.java
+++ b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/LessThanTestCase.java
@@ -3,9 +3,10 @@
 import java.util.List;
 
 import org.eclipse.jdt.core.Signature;
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.validation.el.tests.base.SingleJSPTestCase;
 import org.eclipse.jst.jsf.validation.internal.el.diagnostics.DiagnosticFactory;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
 
 /**
  * Test cases for less than (<, lt)
@@ -16,7 +17,7 @@
 {
     public LessThanTestCase() 
     {
-        super("/testdata/jsps/lessThan.jsp.data", "/lessThan.jsp", IJSFCoreConstants.FACET_VERSION_1_1,FACES_CONFIG_FILE_NAME_1_1);
+        super("/testdata/jsps/lessThan.jsp.data", "/lessThan.jsp", JSFVersion.V1_1,FACES_CONFIG_FILE_NAME_1_1);
     }
 
     protected void setUp() throws Exception 
@@ -102,7 +103,7 @@
 
     public void testWarningExprs() 
     {
-        List list = assertSemanticWarning(2054, Signature.SIG_BOOLEAN, 1);
+        List<IMessage> list = assertSemanticWarning(2054, Signature.SIG_BOOLEAN, 1);
         assertContainsProblem(list, DiagnosticFactory.BINARY_OP_CONSTANT_EXPRESSION_ALWAYS_EVAL_SAME_ID);
 
         list = assertSemanticWarning(2090, Signature.SIG_BOOLEAN, 1);
@@ -148,7 +149,7 @@
 
     public void testErrorExprs() 
     {
-        List list = assertSemanticError(2666, null, 1);
+        List<IMessage> list = assertSemanticError(2666, null, 1);
         assertContainsProblem(list, DiagnosticFactory.BINARY_OP_COULD_NOT_MAKE_NUMERIC_COERCION_ID);
 
         list = assertSemanticError(2705, null, 1);
diff --git a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/LoadBundleResolutionTestCase.java b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/LoadBundleResolutionTestCase.java
index a943c87..cc832cb 100644
--- a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/LoadBundleResolutionTestCase.java
+++ b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/LoadBundleResolutionTestCase.java
@@ -5,11 +5,12 @@
 
 import org.eclipse.jdt.core.Signature;
 import org.eclipse.jst.jsf.common.internal.types.TypeConstants;
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.test.util.TestFileResource;
 import org.eclipse.jst.jsf.validation.el.tests.ELValidationTestPlugin;
 import org.eclipse.jst.jsf.validation.el.tests.base.SingleJSPTestCase;
 import org.eclipse.jst.jsf.validation.internal.el.diagnostics.DiagnosticFactory;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
 
 /**
  * Test cases for load bundle resolution
@@ -20,7 +21,7 @@
 {
     public LoadBundleResolutionTestCase() 
     {
-        super("/testdata/jsps/loadBundleResolution.jsp.data", "/loadBundleResolution.jsp", IJSFCoreConstants.FACET_VERSION_1_1,FACES_CONFIG_FILE_NAME_1_1);
+        super("/testdata/jsps/loadBundleResolution.jsp.data", "/loadBundleResolution.jsp", JSFVersion.V1_1,FACES_CONFIG_FILE_NAME_1_1);
     }
 
     protected void setUp() throws Exception
@@ -70,7 +71,7 @@
 
     public void testWarningExprs() 
     {
-        List list = assertSemanticWarning(1535, Signature.SIG_LONG, 1);
+        List<IMessage> list = assertSemanticWarning(1535, Signature.SIG_LONG, 1);
         assertContainsProblem(list, DiagnosticFactory.UNARY_OP_STRING_CONVERSION_NOT_GUARANTEED_ID);
 
         list = assertSemanticWarning(1588, null, 1);
diff --git a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/LogicalAndTestCase.java b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/LogicalAndTestCase.java
index 476b5a4..1a3d757 100644
--- a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/LogicalAndTestCase.java
+++ b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/LogicalAndTestCase.java
@@ -3,9 +3,10 @@
 import java.util.List;
 
 import org.eclipse.jdt.core.Signature;
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.validation.el.tests.base.SingleJSPTestCase;
 import org.eclipse.jst.jsf.validation.internal.el.diagnostics.DiagnosticFactory;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
 
 /**
  * Test cases for logical AND (and, &&)
@@ -16,7 +17,7 @@
 {
 
     public LogicalAndTestCase() {
-        super("/testdata/jsps/logicalAND.jsp.data", "/logicalAND.jsp", IJSFCoreConstants.FACET_VERSION_1_1,FACES_CONFIG_FILE_NAME_1_1);
+        super("/testdata/jsps/logicalAND.jsp.data", "/logicalAND.jsp", JSFVersion.V1_1,FACES_CONFIG_FILE_NAME_1_1);
     }
 
     protected void setUp() throws Exception
@@ -65,7 +66,7 @@
 
     public void testWarningExprs() 
     {
-        List list = assertSemanticWarning(1301, Signature.SIG_BOOLEAN, 1);
+        List<IMessage> list = assertSemanticWarning(1301, Signature.SIG_BOOLEAN, 1);
         assertContainsProblem(list, DiagnosticFactory.BINARY_OP_FIRST_ARGUMENT_SHORT_CIRCUITS_ID);
 
         list = assertSemanticWarning(1366, Signature.SIG_BOOLEAN, 1);
@@ -104,7 +105,7 @@
 
     public void testErrorExprs() 
     {
-        List list = assertSemanticError(2084, null, 1);
+        List<IMessage> list = assertSemanticError(2084, null, 1);
         assertContainsProblem(list, DiagnosticFactory.BINARY_OP_CANNOT_COERCE_ARGUMENT_TO_BOOLEAN_ID);
 
         list = assertSemanticError(2148, null, 1);
diff --git a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/LogicalEqualsTestCase.java b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/LogicalEqualsTestCase.java
index 14ef863..9c135b7 100644
--- a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/LogicalEqualsTestCase.java
+++ b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/LogicalEqualsTestCase.java
@@ -3,9 +3,10 @@
 import java.util.List;
 
 import org.eclipse.jdt.core.Signature;
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.validation.el.tests.base.SingleJSPTestCase;
 import org.eclipse.jst.jsf.validation.internal.el.diagnostics.DiagnosticFactory;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
 
 /**
  * Test cases for logical equals (eq, ==)
@@ -16,7 +17,7 @@
 {
     public LogicalEqualsTestCase() 
     {
-        super("/testdata/jsps/logicalEquals.jsp.data", "/logicalEquals.jsp", IJSFCoreConstants.FACET_VERSION_1_1,FACES_CONFIG_FILE_NAME_1_1);
+        super("/testdata/jsps/logicalEquals.jsp.data", "/logicalEquals.jsp", JSFVersion.V1_1,FACES_CONFIG_FILE_NAME_1_1);
     }
 
     protected void setUp() throws Exception
@@ -107,7 +108,7 @@
 
     public void testWarningExprs() 
     {
-        List list = assertSemanticWarning(2175, Signature.SIG_BOOLEAN, 1);
+        List<IMessage> list = assertSemanticWarning(2175, Signature.SIG_BOOLEAN, 1);
         assertContainsProblem(list, DiagnosticFactory.BINARY_OP_CONSTANT_EXPRESSION_ALWAYS_EVAL_SAME_ID);
         
         list = assertSemanticWarning(2212, Signature.SIG_BOOLEAN, 1);
@@ -172,7 +173,7 @@
 
     public void testErrorExprs() 
     {
-        List list = assertSemanticError(3257, null, 1);
+        List<IMessage> list = assertSemanticError(3257, null, 1);
         assertContainsProblem(list, DiagnosticFactory.BINARY_OP_COULD_NOT_MAKE_NUMERIC_COERCION_ID);
 
         list = assertSemanticError(3297, null, 1);
diff --git a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/LogicalNotEqualsTestCase.java b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/LogicalNotEqualsTestCase.java
index 40d8194..ad2b6a7 100644
--- a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/LogicalNotEqualsTestCase.java
+++ b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/LogicalNotEqualsTestCase.java
@@ -3,9 +3,10 @@
 import java.util.List;
 
 import org.eclipse.jdt.core.Signature;
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.validation.el.tests.base.SingleJSPTestCase;
 import org.eclipse.jst.jsf.validation.internal.el.diagnostics.DiagnosticFactory;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
 
 /**
  * Test cases for logical not equals (ne, !=)
@@ -16,7 +17,7 @@
 {
     public LogicalNotEqualsTestCase()
     {
-        super("/testdata/jsps/logicalNotEquals.jsp.data", "/logicalNotEquals.jsp", IJSFCoreConstants.FACET_VERSION_1_1,FACES_CONFIG_FILE_NAME_1_1);
+        super("/testdata/jsps/logicalNotEquals.jsp.data", "/logicalNotEquals.jsp", JSFVersion.V1_1,FACES_CONFIG_FILE_NAME_1_1);
     }
 
     protected void setUp() throws Exception
@@ -104,7 +105,7 @@
 
     public void testWarningExprs() 
     {
-        List list = assertSemanticWarning(2175, Signature.SIG_BOOLEAN, 1);
+        List<IMessage> list = assertSemanticWarning(2175, Signature.SIG_BOOLEAN, 1);
         assertContainsProblem(list, DiagnosticFactory.BINARY_OP_CONSTANT_EXPRESSION_ALWAYS_EVAL_SAME_ID);
         
         list = assertSemanticWarning(2212, Signature.SIG_BOOLEAN, 1);
@@ -160,7 +161,7 @@
 
     public void testErrorExprs() 
     {
-        List list = assertSemanticError(3078, null, 1);
+        List<IMessage> list = assertSemanticError(3078, null, 1);
         assertContainsProblem(list, DiagnosticFactory.BINARY_OP_COULD_NOT_MAKE_NUMERIC_COERCION_ID);
 
         list = assertSemanticError(3118, null, 1);
diff --git a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/LogicalNotTestCase.java b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/LogicalNotTestCase.java
index 6fb5ada..1c9903b 100644
--- a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/LogicalNotTestCase.java
+++ b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/LogicalNotTestCase.java
@@ -3,9 +3,10 @@
 import java.util.List;
 
 import org.eclipse.jdt.core.Signature;
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.validation.el.tests.base.SingleJSPTestCase;
 import org.eclipse.jst.jsf.validation.internal.el.diagnostics.DiagnosticFactory;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
 
 /**
  * Test cases for logical not (not, !)
@@ -16,7 +17,7 @@
 
     public LogicalNotTestCase() 
     {
-        super("/testdata/jsps/logicalNOT.jsp.data", "/logicalNOT.jsp", IJSFCoreConstants.FACET_VERSION_1_1,FACES_CONFIG_FILE_NAME_1_1);
+        super("/testdata/jsps/logicalNOT.jsp.data", "/logicalNOT.jsp", JSFVersion.V1_1,FACES_CONFIG_FILE_NAME_1_1);
     }
 
     protected void setUp() throws Exception
@@ -62,7 +63,7 @@
 
     public void testWarningExprs() 
     {
-        List list = assertSemanticWarning(1105, Signature.SIG_BOOLEAN, 1);
+        List<IMessage> list = assertSemanticWarning(1105, Signature.SIG_BOOLEAN, 1);
         assertContainsProblem(list, DiagnosticFactory.UNARY_OP_CONSTANT_EXPRESSION_EVAL_SAME_ID);
 
         list = assertSemanticWarning(1144, Signature.SIG_BOOLEAN, 1);
@@ -89,7 +90,7 @@
 
     public void testErrorExprs() 
     {
-        List list = assertSemanticError(1470, null, 1);
+        List<IMessage> list = assertSemanticError(1470, null, 1);
         assertContainsProblem(list, DiagnosticFactory.UNARY_OP_CANNOT_COERCE_ARGUMENT_TO_BOOLEAN_ID);
         
         list = assertSemanticError(1503, null, 1);
diff --git a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/LogicalOrTestCase.java b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/LogicalOrTestCase.java
index 5cea460..e05c057 100644
--- a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/LogicalOrTestCase.java
+++ b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/LogicalOrTestCase.java
@@ -3,9 +3,10 @@
 import java.util.List;
 
 import org.eclipse.jdt.core.Signature;
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.validation.el.tests.base.SingleJSPTestCase;
 import org.eclipse.jst.jsf.validation.internal.el.diagnostics.DiagnosticFactory;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
 
 /**
  * Test cases for logical OR (or, ||)
@@ -16,7 +17,7 @@
 {
     public LogicalOrTestCase()
     {
-        super("/testdata/jsps/logicalOR.jsp.data", "/logicalOR.jsp", IJSFCoreConstants.FACET_VERSION_1_1,FACES_CONFIG_FILE_NAME_1_1);
+        super("/testdata/jsps/logicalOR.jsp.data", "/logicalOR.jsp", JSFVersion.V1_1,FACES_CONFIG_FILE_NAME_1_1);
     }
 
     protected void setUp() throws Exception
@@ -72,7 +73,7 @@
 
     public void testWarningExprs() 
     {
-        List list = assertSemanticWarning(1777, Signature.SIG_BOOLEAN, 1);
+        List<IMessage> list = assertSemanticWarning(1777, Signature.SIG_BOOLEAN, 1);
         assertContainsProblem(list, DiagnosticFactory.BINARY_OP_FIRST_ARGUMENT_SHORT_CIRCUITS_ID);
 
         list = assertSemanticWarning(1844, Signature.SIG_BOOLEAN, 1);
@@ -96,7 +97,7 @@
 
     public void testErrorExprs() 
     {
-        List list = assertSemanticError(2209, null,1);
+        List<IMessage> list = assertSemanticError(2209, null,1);
         assertContainsProblem(list, DiagnosticFactory.BINARY_OP_CANNOT_COERCE_ARGUMENT_TO_BOOLEAN_ID);
 
         assertSemanticError(2274, null,1);
diff --git a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/MarkerOffsetsTestCase.java b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/MarkerOffsetsTestCase.java
index a69af48..0fc213a 100644
--- a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/MarkerOffsetsTestCase.java
+++ b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/MarkerOffsetsTestCase.java
@@ -2,9 +2,10 @@
 
 import java.util.List;
 
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.validation.el.tests.base.SingleJSPTestCase;
 import org.eclipse.jst.jsf.validation.internal.el.diagnostics.DiagnosticFactory;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
 
 /**
  * Used to verify that marker offset/lengths are calculated correctly
@@ -19,7 +20,7 @@
 public class MarkerOffsetsTestCase extends SingleJSPTestCase 
 {
     public MarkerOffsetsTestCase() {
-        super("/testdata/jsps/markerOffsets.jsp.data", "/markerOffsets.jsp", IJSFCoreConstants.FACET_VERSION_1_1,FACES_CONFIG_FILE_NAME_1_1);
+        super("/testdata/jsps/markerOffsets.jsp.data", "/markerOffsets.jsp", JSFVersion.V1_1,FACES_CONFIG_FILE_NAME_1_1);
     }
 
     protected void setUp() throws Exception
@@ -64,7 +65,7 @@
     }
     public void testWarningExprs() 
     {
-        List list = assertSemanticWarning(905, null, 1);
+        List<IMessage> list = assertSemanticWarning(905, null, 1);
         assertContainsProblem(list, DiagnosticFactory.BINARY_OP_CONSTANT_EXPRESSION_ALWAYS_EVAL_SAME_ID, 905, 5);
 
         list = assertSemanticWarning(941, null, 1);
@@ -116,7 +117,7 @@
     
     public void testErrorExprs() 
     {
-        List list = assertSemanticError(2028, null, 1);
+        List<IMessage> list = assertSemanticError(2028, null, 1);
         assertContainsProblem(list, DiagnosticFactory.BINARY_OP_POSSIBLE_DIVISION_BY_ZERO_ID, 2028, 26);
 
         list = assertSemanticError(2085, null, 1);
diff --git a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/MethodBindingTestCase.java b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/MethodBindingTestCase.java
index 4575901..d3aac9d 100644
--- a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/MethodBindingTestCase.java
+++ b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/MethodBindingTestCase.java
@@ -4,9 +4,10 @@
 
 import org.eclipse.jdt.core.Signature;
 import org.eclipse.jst.jsf.common.internal.types.TypeConstants;
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.validation.el.tests.base.SingleJSPTestCase;
 import org.eclipse.jst.jsf.validation.internal.el.diagnostics.DiagnosticFactory;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
 
 /**
  * Test cases for method bindings
@@ -17,7 +18,7 @@
 {
     public MethodBindingTestCase() 
     {
-        super("/testdata/jsps/methodBinding.jsp.data", "/methodBinding.jsp", IJSFCoreConstants.FACET_VERSION_1_1,FACES_CONFIG_FILE_NAME_1_1);
+        super("/testdata/jsps/methodBinding.jsp.data", "/methodBinding.jsp", JSFVersion.V1_1,FACES_CONFIG_FILE_NAME_1_1);
     }
 
     protected void setUp() throws Exception
@@ -118,7 +119,7 @@
 
     public void testErrorExprs() 
     {
-        List list = assertSemanticError(3338, null, 1);
+        List<IMessage> list = assertSemanticError(3338, null, 1);
         assertContainsProblem(list, DiagnosticFactory.CANNOT_APPLY_OPERATOR_TO_METHOD_BINDING_ID);
 
         list = assertSemanticError(3387, null, 2);
diff --git a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/PropertiesOfListTestCase.java b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/PropertiesOfListTestCase.java
index d05268e..0a8a4f4 100644
--- a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/PropertiesOfListTestCase.java
+++ b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/PropertiesOfListTestCase.java
@@ -1,13 +1,13 @@
 package org.eclipse.jst.jsf.validation.el.tests.jsp;
 
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.validation.el.tests.base.SingleJSPTestCase;
 
 public class PropertiesOfListTestCase extends SingleJSPTestCase 
 {
     public PropertiesOfListTestCase()
     {
-        super("/testdata/jsps/propertiesOfMaps.jsp.data", "/propertiesOfMaps.jsp", IJSFCoreConstants.FACET_VERSION_1_1,FACES_CONFIG_FILE_NAME_1_1);
+        super("/testdata/jsps/propertiesOfMaps.jsp.data", "/propertiesOfMaps.jsp", JSFVersion.V1_1,FACES_CONFIG_FILE_NAME_1_1);
     }
 
     protected void setUp() throws Exception
diff --git a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/PropertiesOfMapsTestCase.java b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/PropertiesOfMapsTestCase.java
index 64dc351..4672ee1 100644
--- a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/PropertiesOfMapsTestCase.java
+++ b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/PropertiesOfMapsTestCase.java
@@ -2,7 +2,7 @@
 
 import org.eclipse.jdt.core.Signature;
 import org.eclipse.jst.jsf.common.internal.types.TypeConstants;
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.validation.el.tests.base.SingleJSPTestCase;
 
 /**
@@ -17,7 +17,7 @@
 {
     public PropertiesOfMapsTestCase()
     {
-        super("/testdata/jsps/propertiesOfMaps.jsp.data", "/propertiesOfMaps.jsp", IJSFCoreConstants.FACET_VERSION_1_1,FACES_CONFIG_FILE_NAME_1_1);
+        super("/testdata/jsps/propertiesOfMaps.jsp.data", "/propertiesOfMaps.jsp", JSFVersion.V1_1,FACES_CONFIG_FILE_NAME_1_1);
     }
 
     protected void setUp() throws Exception
diff --git a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/ResourceBundleTestCase.java b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/ResourceBundleTestCase.java
index 8ba827c..4212cf2 100644
--- a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/ResourceBundleTestCase.java
+++ b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/ResourceBundleTestCase.java
@@ -5,11 +5,12 @@
 
 import org.eclipse.jdt.core.Signature;
 import org.eclipse.jst.jsf.common.internal.types.TypeConstants;
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.test.util.TestFileResource;
 import org.eclipse.jst.jsf.validation.el.tests.ELValidationTestPlugin;
 import org.eclipse.jst.jsf.validation.el.tests.base.SingleJSPTestCase;
 import org.eclipse.jst.jsf.validation.internal.el.diagnostics.DiagnosticFactory;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
 
 /**
  * Tests the introduction of symbols through resource-bundle element the
@@ -24,7 +25,7 @@
 
     public ResourceBundleTestCase() 
     {
-        super("/testdata/jsps/resourceBundleResolution.jsp.data", "/resourceBundle.jsp", IJSFCoreConstants.FACET_VERSION_1_2, FACES_CONFIG_FILE_NAME_1_2 );
+        super("/testdata/jsps/resourceBundleResolution.jsp.data", "/resourceBundle.jsp", JSFVersion.V1_2, FACES_CONFIG_FILE_NAME_1_2 );
     }
 
     
@@ -93,7 +94,7 @@
 
     public void testWarningExprs() 
     {
-        List problems = assertSemanticWarning(1570, null, 1);
+        List<IMessage> problems = assertSemanticWarning(1570, null, 1);
         assertContainsProblem(problems, DiagnosticFactory.UNARY_OP_STRING_CONVERSION_NOT_GUARANTEED_ID);
 
         problems = assertSemanticWarning(1631, null, 1);
diff --git a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/SyntaxCheckTestCase.java b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/SyntaxCheckTestCase.java
index 6e3248f..dc03df7 100644
--- a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/SyntaxCheckTestCase.java
+++ b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/SyntaxCheckTestCase.java
@@ -1,10 +1,6 @@
 package org.eclipse.jst.jsf.validation.el.tests.jsp;
 
-import org.eclipse.jst.jsf.context.resolver.structureddocument.IStructuredDocumentContextResolverFactory;
-import org.eclipse.jst.jsf.context.resolver.structureddocument.internal.ITextRegionContextResolver;
-import org.eclipse.jst.jsf.context.structureddocument.IStructuredDocumentContext;
-import org.eclipse.jst.jsf.context.structureddocument.IStructuredDocumentContextFactory;
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.validation.el.tests.base.SingleJSPTestCase;
 import org.eclipse.jst.jsf.validation.internal.JSPSemanticsValidator;
 
@@ -15,7 +11,7 @@
     protected SyntaxCheckTestCase(String srcFileName, String destFileName,
             String defaultJSFVersion, String defaultFacesConfigFile) 
     {
-        super("/testdata/jsps/syntaxCheck.jsp.data", "/syntaxCheck.jsp", IJSFCoreConstants.FACET_VERSION_1_1, FACES_CONFIG_FILE_NAME_1_1);
+        super("/testdata/jsps/syntaxCheck.jsp.data", "/syntaxCheck.jsp", JSFVersion.V1_1, FACES_CONFIG_FILE_NAME_1_1);
         validator = new JSPSemanticsValidator();
         validator.connect(_structuredDocument);
     }
@@ -33,10 +29,10 @@
     @Override
     public void testWarningExprs() 
     {
-        IStructuredDocumentContext context = 
-            IStructuredDocumentContextFactory.INSTANCE.getContext(_structuredDocument, 877);
-        ITextRegionContextResolver resolver =
-            IStructuredDocumentContextResolverFactory.INSTANCE.getTextRegionResolver(context);
+//        IStructuredDocumentContext context = 
+//            IStructuredDocumentContextFactory.INSTANCE.getContext(_structuredDocument, 877);
+//        ITextRegionContextResolver resolver =
+//            IStructuredDocumentContextResolverFactory.INSTANCE.getTextRegionResolver(context);
 
     
     }
diff --git a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/UnaryEmptyTestCase.java b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/UnaryEmptyTestCase.java
index acfbb0f..f16c38d 100644
--- a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/UnaryEmptyTestCase.java
+++ b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/UnaryEmptyTestCase.java
@@ -3,9 +3,10 @@
 import java.util.List;
 
 import org.eclipse.jdt.core.Signature;
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.validation.el.tests.base.SingleJSPTestCase;
 import org.eclipse.jst.jsf.validation.internal.el.diagnostics.DiagnosticFactory;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
 
 /**
  * Test cases for unary empty
@@ -16,7 +17,7 @@
 {
     public UnaryEmptyTestCase()
     {
-        super("/testdata/jsps/emptyOperator.jsp.data", "/emptyOperator.jsp", IJSFCoreConstants.FACET_VERSION_1_1,FACES_CONFIG_FILE_NAME_1_1);
+        super("/testdata/jsps/emptyOperator.jsp.data", "/emptyOperator.jsp", JSFVersion.V1_1,FACES_CONFIG_FILE_NAME_1_1);
     }
 
     protected void setUp() throws Exception 
@@ -60,7 +61,7 @@
 
     public void testWarningExprs() 
     {
-        List list = assertSemanticWarning(1283, Signature.SIG_BOOLEAN, 1);
+        List<IMessage> list = assertSemanticWarning(1283, Signature.SIG_BOOLEAN, 1);
         assertContainsProblem(list, DiagnosticFactory.UNARY_OP_EMPTY_ALWAYS_FALSE_ON_TYPE_ID);
 
         list = assertSemanticWarning(1321, Signature.SIG_BOOLEAN, 1);
diff --git a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/UnaryMinusTestCase.java b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/UnaryMinusTestCase.java
index 652684d..e3643ac 100644
--- a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/UnaryMinusTestCase.java
+++ b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/jsp/UnaryMinusTestCase.java
@@ -4,9 +4,10 @@
 
 import org.eclipse.jdt.core.Signature;
 import org.eclipse.jst.jsf.common.internal.types.TypeConstants;
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.validation.el.tests.base.SingleJSPTestCase;
 import org.eclipse.jst.jsf.validation.internal.el.diagnostics.DiagnosticFactory;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
 
 /**
  * Test cases for unary minus
@@ -17,7 +18,7 @@
 {
     public UnaryMinusTestCase()
     {
-        super("/testdata/jsps/unaryMinus.jsp.data", "/unaryMinus.jsp", IJSFCoreConstants.FACET_VERSION_1_1,FACES_CONFIG_FILE_NAME_1_1);
+        super("/testdata/jsps/unaryMinus.jsp.data", "/unaryMinus.jsp", JSFVersion.V1_1,FACES_CONFIG_FILE_NAME_1_1);
     }
 
     protected void setUp() throws Exception
@@ -63,7 +64,7 @@
 
     public void testWarningExprs() 
     {
-        List list = assertSemanticWarning(1102, Signature.SIG_LONG, 1);
+        List<IMessage> list = assertSemanticWarning(1102, Signature.SIG_LONG, 1);
         assertContainsProblem(list, DiagnosticFactory.UNARY_OP_STRING_CONVERSION_NOT_GUARANTEED_ID);
 
         list = assertSemanticWarning(1310, Signature.SIG_LONG, 1);
@@ -72,7 +73,7 @@
     
     public void testErrorExprs() 
     {
-        List list = assertSemanticError(1370, null, 1);
+        List<IMessage> list = assertSemanticError(1370, null, 1);
         assertContainsProblem(list, DiagnosticFactory.UNARY_OP_COULD_NOT_MAKE_NUMERIC_COERCION_ID);
 
         list = assertSemanticError(1407, null, 1);
diff --git a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/perf/StressTest.java b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/perf/StressTest.java
index 26012f0..6efd5e1 100644
--- a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/perf/StressTest.java
+++ b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/perf/StressTest.java
@@ -5,7 +5,7 @@
 
 import org.eclipse.core.resources.IFile;
 import org.eclipse.jst.jsf.context.symbol.ISymbol;
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.designtime.DesignTimeApplicationManager;
 import org.eclipse.jst.jsf.designtime.context.DTFacesContext;
 import org.eclipse.jst.jsf.designtime.el.AbstractDTPropertyResolver;
@@ -27,7 +27,7 @@
 {
     public StressTest() 
     {
-        super(IJSFCoreConstants.FACET_VERSION_1_1, SingleJSPTestCase.FACES_CONFIG_FILE_NAME_1_1);
+        super(JSFVersion.V1_1, SingleJSPTestCase.FACES_CONFIG_FILE_NAME_1_1);
     }
 
     protected IFile _testJSP;
diff --git a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/preferences/EndToEndTestCase.java b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/preferences/EndToEndTestCase.java
index a32098d..a06a330 100644
--- a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/preferences/EndToEndTestCase.java
+++ b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/preferences/EndToEndTestCase.java
@@ -17,7 +17,7 @@
 import org.eclipse.emf.common.util.Diagnostic;
 import org.eclipse.jface.preference.IPersistentPreferenceStore;
 import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
 import org.eclipse.jst.jsf.core.internal.JSFCorePlugin;
 import org.eclipse.jst.jsf.validation.el.tests.base.JSPTestCase;
 import org.eclipse.jst.jsf.validation.el.tests.base.SingleJSPTestCase;
@@ -33,7 +33,7 @@
 {
     public EndToEndTestCase()
     {
-        super(IJSFCoreConstants.FACET_VERSION_1_1, SingleJSPTestCase.FACES_CONFIG_FILE_NAME_1_1);
+        super(JSFVersion.V1_1, SingleJSPTestCase.FACES_CONFIG_FILE_NAME_1_1);
     }
 
     protected IFile                 _testJSP;
@@ -145,18 +145,18 @@
     {
         ELExpressionValidator validator = createELValidator(_structuredDocument, docPos, _testJSP);
         validator.validateXMLNode();
-        List syntaxProblems = validator.getSyntaxProblems();
+        List<IMessage> syntaxProblems = validator.getSyntaxProblems();
         
-        for (final Iterator it = syntaxProblems.iterator(); it.hasNext();)
+        for (final Iterator<IMessage> it = syntaxProblems.iterator(); it.hasNext();)
         {
-            IMessage message = (IMessage) it.next();
+            IMessage message = it.next();
             assertEquals(severity, message.getSeverity());
         }
 
-        List semanticProblems = validator.getSemanticValidator().getMessages();
-        for (final Iterator it = semanticProblems.iterator(); it.hasNext();)
+        List<IMessage> semanticProblems = validator.getSemanticValidator().getMessages();
+        for (final Iterator<IMessage> it = semanticProblems.iterator(); it.hasNext();)
         {
-            IMessage message = (IMessage) it.next();
+            IMessage message = it.next();
             assertEquals(severity, message.getSeverity());
         }
     }
diff --git a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/util/CreateTestCaseForJSP.java b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/util/CreateTestCaseForJSP.java
index 2a2ab5d..a25f2b4 100644
--- a/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/util/CreateTestCaseForJSP.java
+++ b/jsf/tests/org.eclipse.jst.jsf.validation.el.tests/src/org/eclipse/jst/jsf/validation/el/tests/util/CreateTestCaseForJSP.java
@@ -98,7 +98,7 @@
         {
             if (curNode.getFirstRegion().getType() == DOMRegionContext.XML_TAG_OPEN ) 
             {
-                Iterator regions = curNode.getRegions().iterator();
+                Iterator<?> regions = curNode.getRegions().iterator();
                 ITextRegion region = null;
 
                 while (regions.hasNext()) 
diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/.settings/org.eclipse.jdt.core.prefs b/jsf/tests/org.eclipse.jst.pagedesigner.tests/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..c773d54
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,56 @@
+#Fri Aug 17 10:42:14 PDT 2007
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=ignore
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/META-INF/MANIFEST.MF b/jsf/tests/org.eclipse.jst.pagedesigner.tests/META-INF/MANIFEST.MF
index 5f2d435..d7f94e5 100644
--- a/jsf/tests/org.eclipse.jst.pagedesigner.tests/META-INF/MANIFEST.MF
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: %Bundle-Name.0
-Bundle-SymbolicName: org.eclipse.jst.pagedesigner.tests
+Bundle-SymbolicName: org.eclipse.jst.pagedesigner.tests;singleton:=true
 Bundle-Version: 1.0.0.qualifier
 Bundle-Vendor: %Bundle-Vendor.0
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
@@ -20,7 +20,8 @@
  org.eclipse.wst.xml.core;bundle-version="[1.1.0,1.2.0)",
  org.eclipse.jface.text;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.jst.pagedesigner;bundle-version="[1.0.0,1.1.0)",
- org.eclipse.emf.common;bundle-version="[2.2.0,2.4.0)"
+ org.eclipse.emf.common;bundle-version="[2.2.0,2.4.0)",
+ org.eclipse.gef;bundle-version="[3.2.0,4.0.0)"
 Export-Package: org.eclipse.jst.pagedesigner.tests;x-internal:=true
 Bundle-ClassPath: pagedesignertests.jar
 Bundle-Activator: org.eclipse.jst.pagedesigner.tests.PageDesignerTestsPlugin
diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/build.properties b/jsf/tests/org.eclipse.jst.pagedesigner.tests/build.properties
index bb32779..415f0d8 100644
--- a/jsf/tests/org.eclipse.jst.pagedesigner.tests/build.properties
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/build.properties
@@ -13,7 +13,8 @@
                plugin.properties,\
                about.html,\
                testdata/,\
-               test.xml
+               test.xml,\
+               plugin.xml
 source.pagedesignertests.jar = src/
 output.pagedesignertests.jar = bin/
 jars.compile.order = pagedesignertests.jar
diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/metadata/test-metadata.xml b/jsf/tests/org.eclipse.jst.pagedesigner.tests/metadata/test-metadata.xml
new file mode 100644
index 0000000..82b132e
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/metadata/test-metadata.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<md:metadatamodel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" 
+    xmlns:md="http://org.eclipse.jst.jsf.common.metadata/metadata.ecore"
+    xmlns:pi="http://org.eclipse.jsf.pagedesigner/paletteInfos.ecore"
+    id="org.eclipse.jst.pagedesigner.tests.tagCreatorFactory1"
+    type="tagFile">
+    
+    <trait id="is-jsf-component-library">
+        <value>true</value>
+    </trait>
+
+    <entity id="tagWithMetadata" type="tag">
+        <trait id="tag-create">
+            <value xsi:type="pi:TagCreationInfo">
+                <attribute id="requiredAttr1" value="foobar"/>
+                <attribute id="notRequiredAttr1" value="someOtherFooBar"/>
+                <template><![CDATA[
+                    <outputText value="CommandLink"
+                    _uri_="http://java.sun.com/jsf/html" />
+                ]]></template>
+            </value>
+            
+        </trait>
+    </entity>
+    
+    <entity id="tagWithRequiredAttr2" type="tag">
+        <trait id="tag-create">
+            <value xsi:type="pi:TagCreationInfo">
+                <attribute id="requiredAttr1" value="foobar"/>
+            </value>
+        </trait>
+    </entity>
+</md:metadatamodel>
\ No newline at end of file
diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/plugin.xml b/jsf/tests/org.eclipse.jst.pagedesigner.tests/plugin.xml
new file mode 100644
index 0000000..ce4218e
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/plugin.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+   <extension
+         point="org.eclipse.jst.jsf.common.standardMetaDataFiles">
+      <standardMetaDataFile
+            location="/metadata/test-metadata.xml"
+            uri="org.eclipse.jst.pagedesigner.tests.tagCreatorFactory1">
+      </standardMetaDataFile>
+   </extension>
+   <extension
+         point="org.eclipse.jst.pagedesigner.pageDesignerExtension">
+      <elementEditFactory
+            class="org.eclipse.jst.pagedesigner.tests.tagcreatorPlugin.TestCreationFactory"></elementEditFactory>
+   </extension>
+
+</plugin>
diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/AllTests.java b/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/AllTests.java
index ac9d9d7..e8f0165 100644
--- a/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/AllTests.java
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/AllTests.java
@@ -13,6 +13,18 @@
 import junit.framework.Test;
 import junit.framework.TestSuite;
 
+import org.eclipse.jst.jsf.core.JSFVersion;
+import org.eclipse.jst.jsf.core.tests.util.JSFCoreUtilHelper;
+import org.eclipse.jst.pagedesigner.tests.tagcreator.TestDefaultTagCreatorForJSFCore;
+import org.eclipse.jst.pagedesigner.tests.tagcreator.TestDefaultTagCreatorForJSFHTML;
+import org.eclipse.jst.pagedesigner.tests.tagcreator.TestDefaultTagCreatorHTML;
+import org.eclipse.jst.pagedesigner.tests.tagcreator.TestDefaultTagCreatorJSP;
+import org.eclipse.jst.pagedesigner.tests.tagcreator.TestItemCreationToolForJSFCore;
+import org.eclipse.jst.pagedesigner.tests.tagcreator.TestItemCreationToolForJSFHTML;
+import org.eclipse.jst.pagedesigner.tests.tagcreator.TestItemCreationToolHTML;
+import org.eclipse.jst.pagedesigner.tests.tagcreator.TestItemCreationToolJSP;
+import org.eclipse.jst.pagedesigner.tests.tagcreator.TestTagCreationFactory;
+
 /**
  * All tests suite for Web Page Editor.
  * 
@@ -28,19 +40,31 @@
 		//$JUnit-BEGIN$
 		
 		//tests requiring jsfRuntimeJarsDirectoryV1.1
-		addTestRequiringJSFRuntime(suite, Test_DTManager.class, "1.1");
-		addTestRequiringJSFRuntime(suite, Test_TransformOperations.class, "1.1");
+		addTestRequiringJSFRuntime(suite, Test_DTManager.class, JSFVersion.V1_1);
+		addTestRequiringJSFRuntime(suite, Test_TransformOperations.class, JSFVersion.V1_1);
+		addTestRequiringJSFRuntime(suite, TestDefaultTagCreatorForJSFCore.class, JSFVersion.V1_1);
+        addTestRequiringJSFRuntime(suite, TestDefaultTagCreatorForJSFHTML.class, JSFVersion.V1_1);
+        addTestRequiringJSFRuntime(suite, TestDefaultTagCreatorHTML.class, JSFVersion.V1_1);
+        addTestRequiringJSFRuntime(suite, TestDefaultTagCreatorJSP.class, JSFVersion.V1_1);
 
+        // TODO: could merge the item creation and default tag creators into a common testsuite
+        addTestRequiringJSFRuntime(suite, TestItemCreationToolForJSFCore.class, JSFVersion.V1_1);
+        addTestRequiringJSFRuntime(suite, TestItemCreationToolForJSFHTML.class, JSFVersion.V1_1);
+        addTestRequiringJSFRuntime(suite, TestItemCreationToolHTML.class, JSFVersion.V1_1);
+        addTestRequiringJSFRuntime(suite, TestItemCreationToolJSP.class, JSFVersion.V1_1);
+
+        
+        addTestRequiringJSFRuntime(suite, TestTagCreationFactory.class, JSFVersion.V1_1);
+        
 		//$JUnit-END$
 		return suite;
 	}
 
-	private static void addTestRequiringJSFRuntime(TestSuite suite, Class testClass, String jsfVersion) {
-		if (Utils.isJSFRuntimeJarsDirectoryValid(jsfVersion)) {
+	private static void addTestRequiringJSFRuntime(TestSuite suite, Class<?> testClass, JSFVersion jsfVersion) {
+		if (JSFCoreUtilHelper.isJSFRuntimeJarsDirectoryValid(jsfVersion)) {
 			suite.addTestSuite(testClass);
 		} else {
-			System.err.println(Utils.getTestRequiresJSFRuntimeMessage(testClass, jsfVersion));
+			System.err.println(JSFCoreUtilHelper.getTestRequiresJSFRuntimeMessage(testClass, jsfVersion));
 		}
 	}
-
 }
diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/Test_DTManager.java b/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/Test_DTManager.java
index c14f180..b20f021 100644
--- a/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/Test_DTManager.java
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/Test_DTManager.java
@@ -22,6 +22,8 @@
 import org.eclipse.jst.jsf.context.structureddocument.IStructuredDocumentContext;
 import org.eclipse.jst.jsf.context.structureddocument.IStructuredDocumentContextFactory;
 import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
+import org.eclipse.jst.jsf.core.tests.util.JSFCoreUtilHelper;
 import org.eclipse.jst.jsf.core.tests.util.JSFFacetedTestEnvironment;
 import org.eclipse.jst.jsf.test.util.JSFTestUtil;
 import org.eclipse.jst.jsf.test.util.WebProjectTestEnvironment;
@@ -70,7 +72,7 @@
         		"/testdata/Test_DTManager.jsp.data",
         		"/Test_DTManager.jsp");
 
-        assertTrue(Utils.addJSFRuntimeJarsToClasspath("1.1", jsfFacetedTestEnv));
+        assertTrue(JSFCoreUtilHelper.addJSFRuntimeJarsToClasspath(JSFVersion.V1_1, jsfFacetedTestEnv));
 	}
 
 	/**
@@ -183,10 +185,10 @@
 
             //test IDTInfo instance
             TagConvertInfo tcInfo = dtInfo.getTagConvertInfo();
-            List operations = tcInfo.getOperations();
+            List<?> operations = tcInfo.getOperations();
             assertNotNull(operations);
             assertEquals(4, operations.size());
-            List tdInfos = dtInfo.getTagDecorateInfos();
+            List<?> tdInfos = dtInfo.getTagDecorateInfos();
             assertEquals(2, tdInfos.size());
             TagDecorateInfo tdInfoDesign = dtInfo.getTagDecorateInfo("vpd-decorate-design");
             assertNotNull(tdInfoDesign);
diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/Test_TransformOperations.java b/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/Test_TransformOperations.java
index aecb6fa..4eaa113 100644
--- a/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/Test_TransformOperations.java
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/Test_TransformOperations.java
@@ -22,6 +22,8 @@
 import org.eclipse.jst.jsf.context.structureddocument.IStructuredDocumentContext;
 import org.eclipse.jst.jsf.context.structureddocument.IStructuredDocumentContextFactory;
 import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
+import org.eclipse.jst.jsf.core.tests.util.JSFCoreUtilHelper;
 import org.eclipse.jst.jsf.core.tests.util.JSFFacetedTestEnvironment;
 import org.eclipse.jst.jsf.test.util.JSFTestUtil;
 import org.eclipse.jst.jsf.test.util.WebProjectTestEnvironment;
@@ -69,7 +71,7 @@
         		"/testdata/Test_TransformOperations.jsp.data",
         		"/Test_TransformOperations.jsp");
 
-        assertTrue(Utils.addJSFRuntimeJarsToClasspath("1.1", jsfFacetedTestEnv));
+        assertTrue(JSFCoreUtilHelper.addJSFRuntimeJarsToClasspath(JSFVersion.V1_1, jsfFacetedTestEnv));
 	}
 
 	/**
@@ -283,7 +285,7 @@
             tagConverter.convertRefresh(null);
 
             //test tag converter to ensure correct child element was copied to child node list
-            List childNodes = tagConverter.getChildModeList();
+            List<?> childNodes = tagConverter.getChildModeList();
             assertTrue(childNodes.size() > 1);
             Node secondChildNode = (Node)childNodes.get(1);
             assertTrue(secondChildNode instanceof Element);
diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/Utils.java b/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/Utils.java
index 2992786..40656f0 100644
--- a/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/Utils.java
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/Utils.java
@@ -10,71 +10,13 @@
  *******************************************************************************/
 package org.eclipse.jst.pagedesigner.tests;
 
-import java.io.File;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jst.jsf.core.internal.jsflibraryconfig.JSFLibraryRegistryUtil;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary;
-import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibraryRegistry;
-import org.eclipse.jst.jsf.core.tests.util.JSFCoreUtilHelper;
-import org.eclipse.jst.jsf.core.tests.util.JSFFacetedTestEnvironment;
-import org.eclipse.jst.jsf.test.util.JSFTestUtil;
 
 /**
  * Web Page Editor test utilities.
  * 
  * @author Ian Trimble - Oracle
  */
-public class Utils {
-
-	public static String[] getJSFRuntimeJarNames(String jsfVersion) {
-		String[] jarNames = null;
-		String dirName = JSFTestUtil.getJSFRuntimeJarsDirectory(jsfVersion);
-		if (dirName != null) {
-			File dir = new File(dirName);
-			if (dir.exists() && dir.isDirectory()) {
-				File[] jars = dir.listFiles();
-				if (jars != null && jars.length > 0) {
-					jarNames = new String[jars.length];
-					for (int i = 0; i < jars.length; i++) {
-						jarNames[i] = jars[i].getAbsolutePath();
-					}
-				}
-			}
-		}
-		return jarNames;
-	}
-
-	public static boolean isJSFRuntimeJarsDirectoryValid(String jsfVersion) {
-		return getJSFRuntimeJarNames(jsfVersion) != null;
-	}
-
-	public static boolean addJSFRuntimeJarsToClasspath(String jsfVersion, JSFFacetedTestEnvironment jsfFacetedTestEnv) throws CoreException {
-		boolean success = false;
-		String[] jarNames = getJSFRuntimeJarNames(jsfVersion);
-		if (jarNames != null) {
-			JSFLibraryRegistry jsfLibRegistry = JSFLibraryRegistryUtil.getInstance().getJSFLibraryRegistry();
-			String libIDandName = "_internalJSFRuntimeLibraryV" + jsfVersion + "_";
-			JSFLibrary jsfImpl = JSFCoreUtilHelper.constructJSFLib(libIDandName, libIDandName, "", jarNames, true);
-			jsfLibRegistry.addJSFLibrary(jsfImpl);
-			jsfFacetedTestEnv.addJSFLibraryReference(jsfImpl, true);
-			success = true;
-		}
-		return success;
-	}
-
-	public static String getTestRequiresJSFRuntimeMessage(Class testClass, String jsfVersion) {
-		StringBuffer sb = new StringBuffer();
-		sb.append("Unable to run test suite \"");
-		sb.append(testClass.getName());
-		sb.append("\"; JSF runtime (v");
-		sb.append(jsfVersion);
-		sb.append(") is required but not present.\nSystem property or environment variable \"jsfRuntimeJarsDirectoryV");
-		sb.append(jsfVersion);
-		sb.append("\" must be set to point to a directory containing JSF runtime (v");
-		sb.append(jsfVersion);
-		sb.append(") JARs.");
-		return sb.toString();
-	}
-
+public class Utils 
+{
+    // prior logic moved to JSFCoreUtilHelper
 }
diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestDefaultTagCreatorForJSFCore.java b/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestDefaultTagCreatorForJSFCore.java
new file mode 100644
index 0000000..7ad5fab
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestDefaultTagCreatorForJSFCore.java
@@ -0,0 +1,156 @@
+package org.eclipse.jst.pagedesigner.tests.tagcreator;
+
+import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
+import org.eclipse.jst.pagedesigner.tests.tagcreator.base.BaseTagCreatorTestCase;
+
+public class TestDefaultTagCreatorForJSFCore extends BaseTagCreatorTestCase 
+{
+    public TestDefaultTagCreatorForJSFCore()
+    {
+        super("f", "jsf");
+    }
+
+    @Override
+    protected void setUp() throws Exception 
+    {
+        super.setUp();
+    }
+
+    @Override
+    protected void tearDown() throws Exception 
+    {
+        super.tearDown();
+    }
+
+    public void testCreateActionListener() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_ACTIONLISTENER, "jsp", "jsp", 358);
+    }
+    
+    public void testCreateAttribute() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_ATTRIBUTE, "jsp", "jsp", 358);
+    }
+
+    public void testCreateConvertDateTime() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_CONVERTDATETIME, "jsp", "jsp", 358);
+    }
+    public void testCreateConvertNumber() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_CONVERTNUMBER, "jsp", "jsp", 358);
+    }
+
+    /**
+     * @throws Exception
+     */
+    public void testCreateConverter() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_CONVERTER, "jsp", "jsp", 358);
+    }
+
+    /**
+     * @throws Exception
+     */
+    public void testCreateFacet() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_FACET, "jsp", "jsp", 358);
+    }
+
+    /**
+     * @throws Exception
+     */
+    public void testCreateLoadBundle() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_LOADBUNDLE, "jsp", "jsp", 358);
+    }
+
+    /**
+     * @throws Exception
+     */
+    public void testCreateParam() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_PARAM, "jsp", "jsp", 358);
+    }
+
+    /**
+     * @throws Exception
+     */
+    public void testCreateSelectItem() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_SELECTITEM, "jsp", "jsp", 358);
+    }
+
+    /**
+     * @throws Exception
+     */
+    public void testCreateSelectItems() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_SELECTITEMS, "jsp", "jsp", 358);
+    }
+
+    /**
+     * @throws Exception
+     */
+    public void testCreateSubview() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_SUBVIEW, "jsp", "jsp", 358);
+    }
+
+    /**
+     * @throws Exception
+     */
+    public void testCreateValidateDoubleRange() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_VALIDATEDOUBLERANGE, "jsp", "jsp", 358);
+    }
+
+    /**
+     * @throws Exception
+     */
+    public void testCreateValidateLength() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_VALIDATELENGTH, "jsp", "jsp", 358);
+    }
+    
+    /**
+     * @throws Exception
+     */
+    public void testCreateValidateLongRange() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_VALIDATELONGRANGE, "jsp", "jsp", 358);
+    }
+
+    /**
+     * @throws Exception
+     */
+    public void testCreateValidator() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_VALIDATOR, "jsp", "jsp", 358);
+    }
+    
+    /**
+     * @throws Exception
+     */
+    public void testCreateValueChangeListener() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_VALUECHANGELISTENER, "jsp", "jsp", 358);
+    }
+
+    /**
+     * @throws Exception
+     */
+    public void testCreateVerbatim() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_VERBATIM, "jsp", "jsp", 358);
+    }
+
+    /**
+     * @throws Exception
+     */
+    public void testCreateView() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_VIEW, "jsp", "jsp", 358);
+    }
+
+}
diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestDefaultTagCreatorForJSFHTML.java b/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestDefaultTagCreatorForJSFHTML.java
new file mode 100644
index 0000000..c8e27a3
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestDefaultTagCreatorForJSFHTML.java
@@ -0,0 +1,142 @@
+package org.eclipse.jst.pagedesigner.tests.tagcreator;
+
+import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
+import org.eclipse.jst.pagedesigner.tests.tagcreator.base.BaseTagCreatorTestCase;
+
+public class TestDefaultTagCreatorForJSFHTML extends BaseTagCreatorTestCase
+{
+    public TestDefaultTagCreatorForJSFHTML()
+    {
+        super("h", "jsf");
+    }
+
+    @Override
+    protected void setUp() throws Exception 
+    {
+        super.setUp();
+    }
+
+    @Override
+    protected void tearDown() throws Exception 
+    {
+        super.tearDown();
+    }
+
+    public void testCreateButton() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_COMMANDBUTTON, "jsp", "jsp", 358);
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_COMMANDBUTTON, "jspx", "jspx", 495);
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_COMMANDBUTTON, "xhtml", "xhtml", 350);
+    }
+
+    public void testCreateCommandLink() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_COMMANDLINK, "jsp", "jsp", 358);
+    }
+
+    public void testCreatePanelGrid() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_PANEL_GRID, "jsp", "jsp", 358);
+    }
+    
+    public void testCreateDataTable() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_DATA_TABLE, "jsp", "jsp", 358);
+    }
+    
+    public void testCreateForm() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_FORM, "jsp", "jsp", 358);
+    }
+    
+    public void testCreateGraphicImage() throws  Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_GRAPHICIMAGE, "jsp", "jsp", 358);
+    }
+    
+    public void testCreateInputHidden() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_INPUTHIDDEN, "jsp", "jsp", 358);
+    }
+    
+    public void testCreateMessage() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_MESSAGE, "jsp", "jsp", 358);
+    }
+    
+    public void testCreateMessages() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_MESSAGES, "jsp", "jsp", 358);
+    }
+    
+    public void testCreateOutputFormat() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_OUTPUTFORMAT, "jsp", "jsp", 358);
+    }
+    
+    public void testCreateOutputLabel() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_OUTPUTLABEL, "jsp", "jsp", 358);
+    }
+    
+    public void testCreateOutputText() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_OUTPUTTEXT, "jsp", "jsp", 358);
+    }
+
+    public void testCreatePanelGroup() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_PANEL_GROUP, "jsp", "jsp", 358);
+    }
+
+    public void testCreateInputSecret() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_INPUTSECRET, "jsp", "jsp", 358);
+    }
+    
+    public void testCreateSelectBooleanCheckbox() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_SELECTBOOLEANCHECKBOX, "jsp", "jsp", 358);
+    }
+
+    public void testCreateSelectManyCheckbox() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_SELECTMANYCHECKBOX, "jsp", "jsp", 358);
+    }
+    
+    public void testCreateSelectManyListbox() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_SELECTMANYLISTBOX, "jsp", "jsp", 358);
+    }
+
+    public void testCreateSelectManyMenu() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_SELECTMANYMENU, "jsp", "jsp", 358);
+    }
+
+    public void testCreateSelectOneListbox() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_SELECTONELISTBOX, "jsp", "jsp", 358);
+    }
+
+    public void testCreateSelectOneMenu() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_SELECTONEMENU, "jsp", "jsp", 358);
+    }
+
+    public void testCreateSelectOneRadio() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_SELECTONERADIO, "jsp", "jsp", 358);
+    }
+
+    public void testCreateInputText() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_INPUTTEXT, "jsp", "jsp", 358);
+    }
+
+    public void testCreateInputTextArea() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_INPUTTEXTAREA, "jsp", "jsp", 358);
+    }
+
+}
\ No newline at end of file
diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestDefaultTagCreatorHTML.java b/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestDefaultTagCreatorHTML.java
new file mode 100644
index 0000000..c83b753
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestDefaultTagCreatorHTML.java
@@ -0,0 +1,36 @@
+package org.eclipse.jst.pagedesigner.tests.tagcreator;
+
+import org.eclipse.jst.jsf.core.internal.tld.TagIdentifierFactory;
+import org.eclipse.jst.pagedesigner.tests.tagcreator.base.BaseTagCreatorTestCase;
+import org.eclipse.wst.xml.core.internal.provisional.contentmodel.CMDocType;
+
+/**
+ * Some basic tests to cover HTML tags
+ * @author cbateman
+ *
+ */
+public class TestDefaultTagCreatorHTML extends BaseTagCreatorTestCase
+{
+    public TestDefaultTagCreatorHTML()
+    {
+        super("", "html");
+    }
+
+    @Override
+    protected void setUp() throws Exception 
+    {
+        super.setUp();
+    }
+
+    @Override
+    protected void tearDown() throws Exception 
+    {
+        super.tearDown();
+    }
+
+    public void testCreateButton() throws Exception
+    {
+        doCreateTest(TagIdentifierFactory.createJSPTagWrapper(CMDocType.HTML_DOC_TYPE, "INPUT.BUTTON"), "html", "html", 358);
+        doCreateTest(TagIdentifierFactory.createJSPTagWrapper(CMDocType.HTML_DOC_TYPE, "INPUT.BUTTON"), "xhtml", "xhtml", 350);
+    }
+}
diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestDefaultTagCreatorJSP.java b/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestDefaultTagCreatorJSP.java
new file mode 100644
index 0000000..05eb97d
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestDefaultTagCreatorJSP.java
@@ -0,0 +1,30 @@
+package org.eclipse.jst.pagedesigner.tests.tagcreator;
+
+import org.eclipse.jst.jsf.core.internal.tld.TagIdentifierFactory;
+import org.eclipse.jst.pagedesigner.tests.tagcreator.base.BaseTagCreatorTestCase;
+
+public class TestDefaultTagCreatorJSP extends BaseTagCreatorTestCase 
+{
+    public TestDefaultTagCreatorJSP()
+    {
+        super("jsp", "jsp");
+    }
+
+    @Override
+    protected void setUp() throws Exception 
+    {
+        super.setUp();
+    }
+
+    @Override
+    protected void tearDown() throws Exception 
+    {
+        super.tearDown();
+    }
+
+    public void testIncludeDirective() throws Exception
+    {
+        doCreateTest(TagIdentifierFactory.createJSPTagWrapper("jsp11", "jsp:directive.include"), "jsp", "jsp", 349);
+        doCreateTest(TagIdentifierFactory.createJSPTagWrapper("jsp11", "jsp:directive.include"), "jspx", "jspx", 492);
+    }
+}
diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestItemCreationToolForJSFCore.java b/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestItemCreationToolForJSFCore.java
new file mode 100644
index 0000000..21fe4e2
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestItemCreationToolForJSFCore.java
@@ -0,0 +1,156 @@
+package org.eclipse.jst.pagedesigner.tests.tagcreator;
+
+import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
+import org.eclipse.jst.pagedesigner.tests.tagcreator.base.BaseItemCreationToolTestCase;
+
+public class TestItemCreationToolForJSFCore extends BaseItemCreationToolTestCase 
+{
+    public TestItemCreationToolForJSFCore()
+    {
+        super("jsf");
+    }
+
+    @Override
+    protected void setUp() throws Exception 
+    {
+        super.setUp();
+    }
+
+    @Override
+    protected void tearDown() throws Exception 
+    {
+        super.tearDown();
+    }
+
+    public void testCreateActionListener() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_ACTIONLISTENER, "jsp", "jsp", 358);
+    }
+    
+    public void testCreateAttribute() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_ATTRIBUTE, "jsp", "jsp", 358);
+    }
+
+    public void testCreateConvertDateTime() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_CONVERTDATETIME, "jsp", "jsp", 358);
+    }
+    public void testCreateConvertNumber() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_CONVERTNUMBER, "jsp", "jsp", 358);
+    }
+
+    /**
+     * @throws Exception
+     */
+    public void testCreateConverter() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_CONVERTER, "jsp", "jsp", 358);
+    }
+
+    /**
+     * @throws Exception
+     */
+    public void testCreateFacet() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_FACET, "jsp", "jsp", 358);
+    }
+
+    /**
+     * @throws Exception
+     */
+    public void testCreateLoadBundle() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_LOADBUNDLE, "jsp", "jsp", 358);
+    }
+
+    /**
+     * @throws Exception
+     */
+    public void testCreateParam() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_PARAM, "jsp", "jsp", 358);
+    }
+
+    /**
+     * @throws Exception
+     */
+    public void testCreateSelectItem() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_SELECTITEM, "jsp", "jsp", 358);
+    }
+
+    /**
+     * @throws Exception
+     */
+    public void testCreateSelectItems() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_SELECTITEMS, "jsp", "jsp", 358);
+    }
+
+    /**
+     * @throws Exception
+     */
+    public void testCreateSubview() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_SUBVIEW, "jsp", "jsp", 358);
+    }
+
+    /**
+     * @throws Exception
+     */
+    public void testCreateValidateDoubleRange() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_VALIDATEDOUBLERANGE, "jsp", "jsp", 358);
+    }
+
+    /**
+     * @throws Exception
+     */
+    public void testCreateValidateLength() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_VALIDATELENGTH, "jsp", "jsp", 358);
+    }
+    
+    /**
+     * @throws Exception
+     */
+    public void testCreateValidateLongRange() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_VALIDATELONGRANGE, "jsp", "jsp", 358);
+    }
+
+    /**
+     * @throws Exception
+     */
+    public void testCreateValidator() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_VALIDATOR, "jsp", "jsp", 358);
+    }
+    
+    /**
+     * @throws Exception
+     */
+    public void testCreateValueChangeListener() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_VALUECHANGELISTENER, "jsp", "jsp", 358);
+    }
+
+    /**
+     * @throws Exception
+     */
+    public void testCreateVerbatim() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_VERBATIM, "jsp", "jsp", 358);
+    }
+
+    /**
+     * @throws Exception
+     */
+    public void testCreateView() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_VIEW, "jsp", "jsp", 358);
+    }
+
+}
diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestItemCreationToolForJSFHTML.java b/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestItemCreationToolForJSFHTML.java
new file mode 100644
index 0000000..a197a92
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestItemCreationToolForJSFHTML.java
@@ -0,0 +1,142 @@
+package org.eclipse.jst.pagedesigner.tests.tagcreator;
+
+import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
+import org.eclipse.jst.pagedesigner.tests.tagcreator.base.BaseItemCreationToolTestCase;
+
+public class TestItemCreationToolForJSFHTML extends BaseItemCreationToolTestCase
+{
+    public TestItemCreationToolForJSFHTML()
+    {
+        super("jsf");
+    }
+
+    @Override
+    protected void setUp() throws Exception 
+    {
+        super.setUp();
+    }
+
+    @Override
+    protected void tearDown() throws Exception 
+    {
+        super.tearDown();
+    }
+
+    public void testCreateButton() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_COMMANDBUTTON, "jsp", "jsp", 358);
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_COMMANDBUTTON, "jspx", "jspx", 495);
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_COMMANDBUTTON, "xhtml", "xhtml", 350);
+    }
+
+    public void testCreateCommandLink() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_COMMANDLINK, "jsp", "jsp", 358);
+    }
+
+    public void testCreatePanelGrid() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_PANEL_GRID, "jsp", "jsp", 358);
+    }
+    
+    public void testCreateDataTable() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_DATA_TABLE, "jsp", "jsp", 358);
+    }
+    
+    public void testCreateForm() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_FORM, "jsp", "jsp", 358);
+    }
+    
+    public void testCreateGraphicImage() throws  Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_GRAPHICIMAGE, "jsp", "jsp", 358);
+    }
+    
+    public void testCreateInputHidden() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_INPUTHIDDEN, "jsp", "jsp", 358);
+    }
+    
+    public void testCreateMessage() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_MESSAGE, "jsp", "jsp", 358);
+    }
+    
+    public void testCreateMessages() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_MESSAGES, "jsp", "jsp", 358);
+    }
+    
+    public void testCreateOutputFormat() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_OUTPUTFORMAT, "jsp", "jsp", 358);
+    }
+    
+    public void testCreateOutputLabel() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_OUTPUTLABEL, "jsp", "jsp", 358);
+    }
+    
+    public void testCreateOutputText() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_OUTPUTTEXT, "jsp", "jsp", 358);
+    }
+
+    public void testCreatePanelGroup() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_PANEL_GROUP, "jsp", "jsp", 358);
+    }
+
+    public void testCreateInputSecret() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_INPUTSECRET, "jsp", "jsp", 358);
+    }
+    
+    public void testCreateSelectBooleanCheckbox() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_SELECTBOOLEANCHECKBOX, "jsp", "jsp", 358);
+    }
+
+    public void testCreateSelectManyCheckbox() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_SELECTMANYCHECKBOX, "jsp", "jsp", 358);
+    }
+    
+    public void testCreateSelectManyListbox() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_SELECTMANYLISTBOX, "jsp", "jsp", 358);
+    }
+
+    public void testCreateSelectManyMenu() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_SELECTMANYMENU, "jsp", "jsp", 358);
+    }
+
+    public void testCreateSelectOneListbox() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_SELECTONELISTBOX, "jsp", "jsp", 358);
+    }
+
+    public void testCreateSelectOneMenu() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_SELECTONEMENU, "jsp", "jsp", 358);
+    }
+
+    public void testCreateSelectOneRadio() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_SELECTONERADIO, "jsp", "jsp", 358);
+    }
+
+    public void testCreateInputText() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_INPUTTEXT, "jsp", "jsp", 358);
+    }
+
+    public void testCreateInputTextArea() throws Exception
+    {
+        doCreateTest(IJSFConstants.TAG_IDENTIFIER_INPUTTEXTAREA, "jsp", "jsp", 358);
+    }
+
+}
\ No newline at end of file
diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestItemCreationToolHTML.java b/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestItemCreationToolHTML.java
new file mode 100644
index 0000000..65b3b3f
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestItemCreationToolHTML.java
@@ -0,0 +1,36 @@
+package org.eclipse.jst.pagedesigner.tests.tagcreator;
+
+import org.eclipse.jst.jsf.core.internal.tld.TagIdentifierFactory;
+import org.eclipse.jst.pagedesigner.tests.tagcreator.base.BaseItemCreationToolTestCase;
+import org.eclipse.wst.xml.core.internal.provisional.contentmodel.CMDocType;
+
+/**
+ * Some basic tests to cover HTML tags
+ * @author cbateman
+ *
+ */
+public class TestItemCreationToolHTML extends BaseItemCreationToolTestCase
+{
+    public TestItemCreationToolHTML()
+    {
+        super("html");
+    }
+
+    @Override
+    protected void setUp() throws Exception 
+    {
+        super.setUp();
+    }
+
+    @Override
+    protected void tearDown() throws Exception 
+    {
+        super.tearDown();
+    }
+
+    public void testCreateButton() throws Exception
+    {
+        doCreateTest(TagIdentifierFactory.createJSPTagWrapper(CMDocType.HTML_DOC_TYPE, "INPUT.BUTTON"), "html", "html", 358);
+        doCreateTest(TagIdentifierFactory.createJSPTagWrapper(CMDocType.HTML_DOC_TYPE, "INPUT.BUTTON"), "xhtml", "xhtml", 350);
+    }
+}
diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestItemCreationToolJSP.java b/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestItemCreationToolJSP.java
new file mode 100644
index 0000000..c477c53
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestItemCreationToolJSP.java
@@ -0,0 +1,30 @@
+package org.eclipse.jst.pagedesigner.tests.tagcreator;
+
+import org.eclipse.jst.jsf.core.internal.tld.TagIdentifierFactory;
+import org.eclipse.jst.pagedesigner.tests.tagcreator.base.BaseItemCreationToolTestCase;
+
+public class TestItemCreationToolJSP extends BaseItemCreationToolTestCase 
+{
+    public TestItemCreationToolJSP()
+    {
+        super("jsp");
+    }
+
+    @Override
+    protected void setUp() throws Exception 
+    {
+        super.setUp();
+    }
+
+    @Override
+    protected void tearDown() throws Exception 
+    {
+        super.tearDown();
+    }
+
+    public void testIncludeDirective() throws Exception
+    {
+        doCreateTest(TagIdentifierFactory.createJSPTagWrapper("jsp11", "jsp:directive.include"), "jsp", "jsp", 349);
+        doCreateTest(TagIdentifierFactory.createJSPTagWrapper("jsp11", "jsp:directive.include"), "jspx", "jspx", 492);
+    }
+}
diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestTagCreationFactory.java b/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestTagCreationFactory.java
new file mode 100644
index 0000000..53597d5
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestTagCreationFactory.java
@@ -0,0 +1,245 @@
+package org.eclipse.jst.pagedesigner.tests.tagcreator;
+
+import java.io.ByteArrayOutputStream;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jst.jsf.common.dom.TagIdentifier;
+import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
+import org.eclipse.jst.jsf.core.internal.tld.TagIdentifierFactory;
+import org.eclipse.jst.jsf.test.util.JSFTestUtil;
+import org.eclipse.jst.pagedesigner.itemcreation.CreationData;
+import org.eclipse.jst.pagedesigner.itemcreation.ITagCreator;
+import org.eclipse.jst.pagedesigner.itemcreation.internal.TagCreationFactory;
+import org.eclipse.jst.pagedesigner.tests.PageDesignerTestsPlugin;
+import org.eclipse.jst.pagedesigner.tests.tagcreator.base.BaseTestClass;
+import org.eclipse.jst.pagedesigner.tests.tagcreator.base.MockCreateItemCommand;
+import org.eclipse.jst.pagedesigner.tests.tagcreator.base.MockItemCreationTool;
+import org.eclipse.jst.pagedesigner.tests.tagcreatorPlugin.TestCreationFactory;
+import org.eclipse.jst.pagedesigner.utils.CommandUtil;
+import org.w3c.dom.Element;
+
+/**
+ * @author cbateman
+ *
+ */
+public class TestTagCreationFactory extends BaseTestClass 
+{
+    public TestTagCreationFactory() {
+        super("jsf");
+    }
+
+    @Override
+    protected void setUp() throws Exception 
+    {
+        super.setUp();
+
+        _webProjectTestEnv.loadResourceInWebRoot
+        (PageDesignerTestsPlugin.getDefault().getBundle()
+            , "/testdata/tagcreator/testCreator.tld.data"
+            , "/META-INF/testCreator.tld");
+        // make sure the manager picks up the new TLD.
+        _manager.reset();
+    }
+
+    @Override
+    protected void tearDown() throws Exception 
+    {
+        super.tearDown();
+    }
+
+    public void testEnsureRequiredAttributes() throws Exception
+    {
+        IFile jspFile = (IFile) _webProjectTestEnv.loadResourceInWebRoot(
+                PageDesignerTestsPlugin.getDefault().getBundle()
+                ,"/testdata/tagcreator/testTagCreation.jsp.data"
+                ,"/testEnsureRequiredAttributes.jsp");
+
+        CreationData creationData =
+            getCreationData(TestCreationFactory.TAGCREATOR_URI_1
+                   , "tagWithRequiredAttr", "test", jspFile, 501);
+        Element element = CommandUtil.excuteInsertion(creationData.getTagEntry()
+                                    , creationData.getModel()
+                                    , creationData.getDomPosition()
+                                    , creationData.getDropCustomizationData());
+
+        assertNotNull(element);
+        final TagIdentifier tagId = TagIdentifierFactory.createDocumentTagWrapper(element);
+        assertEquals("test:tagWithRequiredAttr", element.getNodeName());
+        // the framework will not force a value on this attribute
+        assertNull(element.getAttribute(TestCreationFactory.REQUIRED_ATTR_1));
+
+        // the framework will leave attr2 alone because the advisor is setting it
+        assertEquals(TestCreationFactory.getDefaultAttributeValue
+                            (tagId, TestCreationFactory.REQUIRED_ATTR_2)
+                , element.getAttribute(TestCreationFactory.REQUIRED_ATTR_2));
+
+        // test manually calling the ensure method for
+        jspFile = (IFile) _webProjectTestEnv.loadResourceInWebRoot(
+                PageDesignerTestsPlugin.getDefault().getBundle()
+                ,"/testdata/tagcreator/testTagCreation.jsp.data"
+                ,"/testEnsureRequiredAttributes2.jsp");
+        creationData =
+            getCreationData(TestCreationFactory.TAGCREATOR_URI_1
+                   , "tagWithRequiredAttr2", "test", jspFile, 501);
+        element = CommandUtil.excuteInsertion(creationData.getTagEntry()
+                                    , creationData.getModel()
+                                    , creationData.getDomPosition()
+                                    , creationData.getDropCustomizationData());
+        
+        // on this tag, the first required attr is set by metadata
+        assertEquals("foobar", element.getAttribute(TestCreationFactory.REQUIRED_ATTR_1));
+        // the second one is not set by meta-data, but is required and ensure is called
+        // by the custom advisor, so it should be set to empty
+        assertEquals("", element.getAttribute(TestCreationFactory.REQUIRED_ATTR_2));
+        
+        // the optional attribute is not set by meta-data and since it's not required,
+        // the ensure method should not touch it either.
+        assertNull(element.getAttribute("notRequiredAttr1"));
+    }
+
+    public void testTagCreationMetadata() throws Exception
+    {
+        IFile jspFile = (IFile) _webProjectTestEnv.loadResourceInWebRoot(
+                PageDesignerTestsPlugin.getDefault().getBundle()
+                ,"/testdata/tagcreator/testTagCreation.jsp.data"
+                ,"/testTagCreationMetadata.jsp");
+
+        CreationData creationData =
+            getCreationData(TestCreationFactory.TAGCREATOR_URI_1
+                   , "tagWithMetadata", "test", jspFile, 501);
+        Element element = CommandUtil.excuteInsertion(creationData.getTagEntry()
+                                    , creationData.getModel()
+                                    , creationData.getDomPosition()
+                                    , creationData.getDropCustomizationData());
+
+        assertNotNull(element);
+        // ensure that the meta-data value for this required attribute
+        // is set.
+        assertEquals("foobar", element.getAttribute("requiredAttr1"));
+        // we have not provided meta-data for this attribute but it is required
+        // by default, the framework won't enforce so should be null
+        assertNull(element.getAttribute("requiredAttr2"));
+        // we have provided meta-data for this non-required attribute,
+        // so ensure it's set
+        assertEquals("someOtherFooBar", element.getAttribute("notRequiredAttr1"));
+        // we have not provided m-d for this optional one, so since it's optional
+        // it should be null.
+        assertNull(element.getAttribute("notRequiredAttr2"));
+
+        // check the child template was applied
+        assertEquals(1, element.getChildNodes().getLength());
+        // TODO: we should find the default prefix for outputText, but
+        // we only check those taglibs already referenced in the document.
+        assertEquals("p:outputText", element.getChildNodes().item(0).getNodeName());
+    }
+
+    /**
+     * Test the situation that is common with JSPX where the f:view must be more than
+     * 3 levels deep from the root (was causing duplicate view's to be added).
+     */
+    public void testBug197042() throws Exception
+    {
+        IFile jspFile = (IFile) _webProjectTestEnv.loadResourceInWebRoot(
+                PageDesignerTestsPlugin.getDefault().getBundle()
+                ,"/testdata/tagcreator/tagCreator.jspx.data"
+                ,"/testTagCreationMetadata.jsp");
+
+        final String uri = 
+            IJSFConstants.TAG_IDENTIFIER_COMMANDBUTTON.getUri();
+        final String tagName = 
+            IJSFConstants.TAG_IDENTIFIER_COMMANDBUTTON.getTagName();
+        CreationData creationData =
+            getCreationData(uri,tagName,"h", jspFile, 495);
+
+        ITagCreator tagCreator = TagCreationFactory.getInstance()
+            .createTagCreator(creationData.getTagId());
+
+        Element element = tagCreator.createTag(creationData);
+
+        System.out.println(element.toString());
+
+        ByteArrayOutputStream resultStream = new ByteArrayOutputStream();
+        getDocumentContext(0, jspFile).getModel().save(resultStream);
+
+        final IPath expectedPath = JSFTestUtil.getAbsolutePath(
+                PageDesignerTestsPlugin.getDefault().getBundle(),
+                    "/testdata/tagcreator/jsf/expectedResult_commandButton.jspx.data");
+        final String expected = getExpectedResult(expectedPath).trim();
+        final String result = resultStream.toString().trim();
+
+        assertEquals(expected, result);
+    }
+
+    public void testDropCustomizerThatCancels() throws Exception
+    {
+        IFile jspFile = (IFile) _webProjectTestEnv.loadResourceInWebRoot(
+                PageDesignerTestsPlugin.getDefault().getBundle()
+                ,"/testdata/tagcreator/tagCreator.jsp.data"
+                ,"/testCustomizerCancel.jsp");
+
+        TestCreationFactory.setTestParametersForDropCustomer(Status.CANCEL_STATUS, null);
+
+        MockItemCreationTool tool = 
+            createMockItemCreationTool(jspFile, 358, TestCreationFactory.TAG_WITH_REQUIRED_ATTR, IStatus.CANCEL);
+
+        tool.customizeDropAndMaybeExecute(0);
+
+        assertExpectedResult(jspFile, "jsp");
+    }
+
+    public void testDropCustomizationDataAcquistion() throws Exception
+    {
+        IFile jspFile = (IFile) _webProjectTestEnv.loadResourceInWebRoot(
+                PageDesignerTestsPlugin.getDefault().getBundle()
+                ,"/testdata/tagcreator/tagCreator.jsp.data"
+                ,"/testCustomizerCancel.jsp");
+
+        IAdaptable adaptable = new IAdaptable()
+        {
+            @SuppressWarnings("unchecked")
+            public Object getAdapter(Class adapter) {
+                if (Map.class == adapter)
+                {
+                    HashMap<String, String> map = new HashMap<String, String>();
+                    map.put("color", "red");
+                    return map;
+                }
+                return null;
+            }
+        };
+
+        TestCreationFactory.setTestParametersForDropCustomer(Status.OK_STATUS, adaptable);
+
+        MockItemCreationTool tool = 
+            createMockItemCreationTool(jspFile, 358, TestCreationFactory.TAG_WITH_REQUIRED_ATTR, IStatus.CANCEL);
+
+        tool.customizeDropAndMaybeExecute(0);
+        Object[] commands = tool.getDomain().getCommandStack().getCommands();
+        assertEquals(1, commands.length);
+        assertTrue(commands[0] instanceof MockCreateItemCommand);
+        
+        IAdaptable value = ((MockCreateItemCommand)commands[0]).getCustomizationDataTesting();
+        assertEquals(adaptable, value);
+        Map map = (Map) value.getAdapter(Map.class);
+        assertNotNull(map);
+        assertEquals("red", map.get("color"));
+    }
+    
+    private void assertExpectedResult(IFile file, String outExt) throws Exception
+    {
+        final ByteArrayOutputStream resultStream = new ByteArrayOutputStream();
+        getDocumentContext(0, file).getModel().save(resultStream);
+
+        final String expected = 
+            getExpectedResult("/testdata/tagcreator/tagCreator."+outExt+".data").trim();
+        final String result = resultStream.toString("ISO-8859-1").trim();
+
+        assertEquals(expected, result);
+    }
+}
diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/base/BaseItemCreationToolTestCase.java b/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/base/BaseItemCreationToolTestCase.java
new file mode 100644
index 0000000..1009be7
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/base/BaseItemCreationToolTestCase.java
@@ -0,0 +1,34 @@
+package org.eclipse.jst.pagedesigner.tests.tagcreator.base;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.jst.jsf.common.dom.TagIdentifier;
+import org.eclipse.jst.pagedesigner.tests.PageDesignerTestsPlugin;
+
+public class BaseItemCreationToolTestCase extends BaseTestClass 
+{
+
+    public BaseItemCreationToolTestCase(final String compareDataSubDir) {
+        super(compareDataSubDir);
+    }
+
+    @Override
+    protected void setUp() throws Exception 
+    {
+        super.setUp();
+    }
+    
+    protected final void doCreateTest(final TagIdentifier tagId, final String inExt, final String outExt, int offset) throws Exception
+    {
+        final String tagName = tagId.getTagName();
+
+        final IFile file = (IFile) _webProjectTestEnv.loadResourceInWebRoot(
+                PageDesignerTestsPlugin.getDefault().getBundle(),
+                "/testdata/tagcreator/tagCreator."+inExt+".data", "/tagCreator_"+tagName+"."+inExt);
+
+        MockItemCreationTool tool = createMockItemCreationTool(file, offset, tagId);
+
+        tool.customizeDropAndMaybeExecute(0);
+
+        assertExpectedResult(file, tagName, outExt);
+    }
+}
diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/base/BaseTagCreatorTestCase.java b/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/base/BaseTagCreatorTestCase.java
new file mode 100644
index 0000000..f054147
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/base/BaseTagCreatorTestCase.java
@@ -0,0 +1,47 @@
+package org.eclipse.jst.pagedesigner.tests.tagcreator.base;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.jst.jsf.common.dom.TagIdentifier;
+import org.eclipse.jst.pagedesigner.itemcreation.ITagCreator;
+import org.eclipse.jst.pagedesigner.itemcreation.internal.TagCreationFactory;
+import org.eclipse.jst.pagedesigner.tests.PageDesignerTestsPlugin;
+import org.w3c.dom.Element;
+
+public class BaseTagCreatorTestCase extends BaseTestClass 
+{
+//    private Map<String, TaglibPaletteDrawer> _drawers = new HashMap<String, TaglibPaletteDrawer>();
+    protected final String _defaultPrefix;
+    
+    public BaseTagCreatorTestCase(final String defaultPrefix, final String compareDataSubDir)
+    {
+        super(compareDataSubDir);
+        this._defaultPrefix = defaultPrefix;
+    }
+    
+
+    @Override
+    protected void tearDown() throws Exception {
+        super.tearDown();
+    }
+
+    protected final void doCreateTest(final TagIdentifier tagId, final String inExt, final String outExt, int offset) throws Exception 
+    {
+        final String uri = tagId.getUri();
+        final String tagName = tagId.getTagName();
+
+        IFile file = (IFile) _webProjectTestEnv.loadResourceInWebRoot(
+                PageDesignerTestsPlugin.getDefault().getBundle(),
+                "/testdata/tagcreator/tagCreator."+inExt+".data", "/tagCreator_"+tagName+"."+inExt);
+
+        
+        ITagCreator tagCreator = TagCreationFactory.getInstance()
+                .createTagCreator(tagId);
+
+        Element element = tagCreator.createTag(getCreationData(uri, tagName,
+                _defaultPrefix, file, offset));
+
+        System.out.println(element.toString());
+
+        assertExpectedResult(file, tagName, outExt);
+    }
+}
diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/base/BaseTestClass.java b/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/base/BaseTestClass.java
new file mode 100644
index 0000000..9d18810
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/base/BaseTestClass.java
@@ -0,0 +1,227 @@
+package org.eclipse.jst.pagedesigner.tests.tagcreator.base;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.gef.EditDomain;
+import org.eclipse.jst.jsf.common.dom.TagIdentifier;
+import org.eclipse.jst.jsf.common.metadata.query.ITaglibDomainMetaDataModelContext;
+import org.eclipse.jst.jsf.common.metadata.query.TaglibDomainMetaDataQueryHelper;
+import org.eclipse.jst.jsf.context.resolver.structureddocument.IDOMContextResolver;
+import org.eclipse.jst.jsf.context.resolver.structureddocument.IStructuredDocumentContextResolverFactory;
+import org.eclipse.jst.jsf.context.structureddocument.IStructuredDocumentContext;
+import org.eclipse.jst.jsf.context.structureddocument.IStructuredDocumentContextFactory;
+import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.JSFVersion;
+import org.eclipse.jst.jsf.core.tests.util.JSFCoreUtilHelper;
+import org.eclipse.jst.jsf.core.tests.util.JSFFacetedTestEnvironment;
+import org.eclipse.jst.jsf.test.util.JSFTestUtil;
+import org.eclipse.jst.jsf.test.util.WebProjectTestEnvironment;
+import org.eclipse.jst.jsp.core.internal.domdocument.DOMModelForJSP;
+import org.eclipse.jst.pagedesigner.dom.DOMPosition;
+import org.eclipse.jst.pagedesigner.editors.palette.TagToolPaletteEntry;
+import org.eclipse.jst.pagedesigner.editors.palette.impl.PaletteItemManager;
+import org.eclipse.jst.pagedesigner.editors.palette.impl.TaglibPaletteDrawer;
+import org.eclipse.jst.pagedesigner.itemcreation.CreationData;
+import org.eclipse.jst.pagedesigner.tests.PageDesignerTestsPlugin;
+import org.eclipse.wst.html.core.internal.document.DOMStyleModelImpl;
+import org.eclipse.wst.sse.core.StructuredModelManager;
+import org.eclipse.wst.sse.core.internal.provisional.IModelManager;
+import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
+import org.w3c.dom.Node;
+
+public class BaseTestClass extends TestCase 
+{
+    protected WebProjectTestEnvironment             _webProjectTestEnv;
+    protected PaletteItemManager                    _manager;
+    protected final  String                         _compareDataSubDir;
+
+    public BaseTestClass(String compareDataSubDir)
+    {
+        _compareDataSubDir = compareDataSubDir;
+    }
+
+    @Override
+    protected void setUp() throws Exception
+    {
+        super.setUp();
+        
+        JSFTestUtil.setValidationEnabled(false);
+
+        _webProjectTestEnv = new WebProjectTestEnvironment(
+                getClass().getName()+"_" + getName());
+        _webProjectTestEnv.createProject(false);
+        assertNotNull(_webProjectTestEnv);
+        assertNotNull(_webProjectTestEnv.getTestProject());
+        assertTrue(_webProjectTestEnv.getTestProject().isAccessible());
+
+        JSFFacetedTestEnvironment jsfFacetedTestEnv = 
+            new JSFFacetedTestEnvironment(_webProjectTestEnv);
+        jsfFacetedTestEnv.initialize(IJSFCoreConstants.FACET_VERSION_1_1);
+
+        assertTrue(JSFCoreUtilHelper.addJSFRuntimeJarsToClasspath(JSFVersion.V1_1,
+                jsfFacetedTestEnv));
+
+        // ensure this gets called so that the getCurrentInstance
+        _manager = PaletteItemManager.getInstance(_webProjectTestEnv.getTestProject());
+    }
+
+    protected CreationData getCreationData(final String uri,
+            final String tagName, final String defaultPrefix, IFile file, int offset) throws Exception 
+    {
+        final ITaglibDomainMetaDataModelContext modelContext = TaglibDomainMetaDataQueryHelper
+                .createMetaDataModelContext(
+                        _webProjectTestEnv.getTestProject(), uri);
+
+        TagToolPaletteEntry entry = createNonNullPaletteEntry(uri, tagName);
+
+        ContextWrapper context = getDocumentContext(offset, file);
+        IDOMContextResolver resolver = IStructuredDocumentContextResolverFactory.INSTANCE
+                .getDOMContextResolver(context.getContext());
+        // we want to simulate a drop inside the the body after the text node
+        Node node = resolver.getNode();
+        assertEquals(Node.TEXT_NODE, node.getNodeType());
+
+        DOMPosition domPosition = new DOMPosition(node, 0);
+
+        return new CreationData(entry, (IDOMModel) context.getModel(),
+                domPosition, modelContext, null);
+    }
+    
+    protected TagToolPaletteEntry createPaletteEntry(final String uri, final String tagName)
+    {
+        TaglibPaletteDrawer drawer = 
+            _manager.getTaglibPalletteDrawer(uri);
+        TagToolPaletteEntry entry = drawer.getTagPaletteEntryByTagName(tagName);
+        
+        // covers case for HTML where the id is what's important because
+        // the tag name is over loaded (i.e. input).
+        if (entry == null)
+        {
+            entry = drawer.getTagPaletteEntryById(tagName);
+        }
+
+        return entry;
+    }
+    
+    protected TagToolPaletteEntry createNonNullPaletteEntry(final String uri, final String tagName)
+    {
+        TagToolPaletteEntry entry = createPaletteEntry(uri, tagName);
+        assertNotNull(entry);
+        return entry;
+    }
+
+    protected ContextWrapper getDocumentContext(int offset, IFile jspFile) throws Exception
+    {
+        
+        assertTrue(jspFile.exists());
+        final IModelManager modelManager = StructuredModelManager
+                .getModelManager();
+        IStructuredModel model = null;
+        model = modelManager.getModelForRead(jspFile);
+        // jsp, jspx or xhtml
+        assertTrue(model instanceof DOMModelForJSP || model instanceof DOMStyleModelImpl);
+        final IStructuredDocumentContext context = 
+            IStructuredDocumentContextFactory.INSTANCE
+                .getContext(model.getStructuredDocument(), offset);
+        return new ContextWrapper(context, model);
+    }
+
+    public static class ContextWrapper 
+    {
+        private final IStructuredDocumentContext context;
+        private final IStructuredModel model;
+
+        public ContextWrapper(final IStructuredDocumentContext context,
+                final IStructuredModel model) {
+            super();
+            this.context = context;
+            this.model = model;
+        }
+        
+        public IStructuredDocumentContext getContext() {
+            return context;
+        }
+
+        public IStructuredModel getModel() {
+            return model;
+        }
+
+        void dispose() 
+        {
+            model.releaseFromRead();
+        }
+    }
+
+    protected String getExpectedResult(final IPath path) throws IOException
+    {
+        return JSFTestUtil.loadFromFile(path.toFile()).toString();
+    }
+
+    protected final String getExpectedResult(String tagName, String outExt)
+            throws Exception
+    {
+        String ext = outExt == null ? "" : "."+outExt;
+        final String fileName = 
+            "expectedResult_" + tagName.replaceAll(":", "_") + ext +".data";
+        final String pathStr = 
+            "/testdata/tagcreator/"+ _compareDataSubDir + "/" + fileName;
+        return getExpectedResult(pathStr);
+    }
+
+    protected final String getExpectedResult(final String pathStr) throws Exception
+    {
+        final IPath expectedPath = JSFTestUtil.getAbsolutePath(
+                PageDesignerTestsPlugin.getDefault().getBundle(),
+                pathStr);
+        return getExpectedResult(expectedPath);
+    }
+    
+    protected final void assertExpectedResult(IFile file, String tagName, String outExt) throws Exception
+    {
+        final ByteArrayOutputStream resultStream = new ByteArrayOutputStream();
+        getDocumentContext(0, file).getModel().save(resultStream);
+    
+        final String expected = getExpectedResult(tagName, outExt).trim();
+        final String result = resultStream.toString("ISO-8859-1").trim();
+
+        assertEquals(expected, result);
+    }
+
+    protected MockItemCreationTool createMockItemCreationTool(IFile file, int offset, TagIdentifier tagId) throws Exception
+    {
+        return createMockItemCreationTool(file, offset, tagId, IStatus.OK);
+    }
+
+    protected MockItemCreationTool createMockItemCreationTool(IFile file, int offset, TagIdentifier tagId, int expectedResult) throws Exception
+    {
+        TagToolPaletteEntry toolEntry = createNonNullPaletteEntry(tagId.getUri(), tagId.getTagName());
+
+        MockItemCreationTool tool = new MockItemCreationTool(toolEntry);
+
+        ContextWrapper wrapper = getDocumentContext(offset, file);
+        IDOMContextResolver resolver = 
+            IStructuredDocumentContextResolverFactory.INSTANCE
+                .getDOMContextResolver(wrapper.getContext());
+        final IStructuredModel model = wrapper.getModel();
+
+        final DOMPosition domPosition = new DOMPosition(resolver.getNode(), 0);
+        
+        final MockCreateItemCommand command = 
+            new MockCreateItemCommand("Test Command", (IDOMModel) model, 
+                                                domPosition, toolEntry);
+
+        tool.setEditDomain(new EditDomain());
+        tool.setCurrentCommand(command);
+
+        return tool;
+    }
+
+
+}
diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/base/MockCreateItemCommand.java b/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/base/MockCreateItemCommand.java
new file mode 100644
index 0000000..f066081
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/base/MockCreateItemCommand.java
@@ -0,0 +1,30 @@
+/**
+ * 
+ */
+package org.eclipse.jst.pagedesigner.tests.tagcreator.base;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.jst.pagedesigner.commands.CreateItemCommand;
+import org.eclipse.jst.pagedesigner.dom.IDOMPosition;
+import org.eclipse.jst.pagedesigner.editors.palette.TagToolPaletteEntry;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
+import org.w3c.dom.Node;
+
+public class MockCreateItemCommand extends CreateItemCommand
+{
+    public MockCreateItemCommand(String label, IDOMModel model,
+            IDOMPosition position, TagToolPaletteEntry tagItem) {
+        super(label, model, position, tagItem);
+    }
+
+    @Override
+    public void formatNode(Node node) 
+    {
+        // override to NOOP: we don't want to format the node
+    }
+    
+    public IAdaptable getCustomizationDataTesting()
+    {
+        return super.getCustomizationData();
+    }
+}
\ No newline at end of file
diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/base/MockItemCreationTool.java b/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/base/MockItemCreationTool.java
new file mode 100644
index 0000000..79f9401
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/base/MockItemCreationTool.java
@@ -0,0 +1,31 @@
+/**
+ * 
+ */
+package org.eclipse.jst.pagedesigner.tests.tagcreator.base;
+
+import org.eclipse.gef.EditDomain;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.jst.pagedesigner.editors.palette.TagToolPaletteEntry;
+import org.eclipse.jst.pagedesigner.itemcreation.ItemCreationTool;
+
+public class MockItemCreationTool extends ItemCreationTool
+{
+    public MockItemCreationTool(TagToolPaletteEntry tagToolPaletteEntryItem) {
+        super(tagToolPaletteEntryItem);
+    }
+
+    @Override
+    public void customizeDropAndMaybeExecute(int button) {
+        super.customizeDropAndMaybeExecute(button);
+    }
+
+    @Override
+    protected void setCurrentCommand(Command c) {
+        super.setCurrentCommand(c);
+    }
+
+    @Override
+    public EditDomain getDomain() {
+        return super.getDomain();
+    }
+}
\ No newline at end of file
diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreatorPlugin/TestCreationFactory.java b/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreatorPlugin/TestCreationFactory.java
new file mode 100644
index 0000000..0b4da46
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreatorPlugin/TestCreationFactory.java
@@ -0,0 +1,176 @@
+package org.eclipse.jst.pagedesigner.tests.tagcreatorPlugin;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jst.jsf.common.dom.TagIdentifier;
+import org.eclipse.jst.jsf.core.internal.tld.TagIdentifierFactory;
+import org.eclipse.jst.pagedesigner.elementedit.AbstractElementEdit;
+import org.eclipse.jst.pagedesigner.elementedit.AbstractElementEditFactory;
+import org.eclipse.jst.pagedesigner.elementedit.IElementEdit;
+import org.eclipse.jst.pagedesigner.itemcreation.AbstractTagCreator;
+import org.eclipse.jst.pagedesigner.itemcreation.CreationData;
+import org.eclipse.jst.pagedesigner.itemcreation.DefaultTagCreationAdvisor;
+import org.eclipse.jst.pagedesigner.itemcreation.ITagCreationAdvisor;
+import org.eclipse.jst.pagedesigner.itemcreation.ITagCreator;
+import org.eclipse.jst.pagedesigner.itemcreation.command.ElementCustomizationCommand;
+import org.eclipse.jst.pagedesigner.itemcreation.customizer.AbstractDropCustomizer;
+import org.eclipse.jst.pagedesigner.itemcreation.customizer.IDropCustomizer;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
+import org.w3c.dom.Element;
+
+/**
+ * Factory for testing purposes
+ * 
+ * @author cbateman
+ *
+ */
+public class TestCreationFactory extends AbstractElementEditFactory
+{
+    public final static String TAGCREATOR_URI_1 = 
+        "org.eclipse.jst.pagedesigner.tests.tagCreatorFactory1";
+    
+    public final static TagIdentifier TAG_WITH_REQUIRED_ATTR = 
+        TagIdentifierFactory.createJSPTagWrapper
+            (TAGCREATOR_URI_1, "tagWithRequiredAttr");
+
+    protected static final TagIdentifier TAG_WITH_UNSET_REQUIRED_ATTR = 
+        TagIdentifierFactory.createJSPTagWrapper
+            (TAGCREATOR_URI_1, "tagWithRequiredAttr2");
+
+    public final static String REQUIRED_ATTR_1 = "requiredAttr1";
+    public final static String REQUIRED_ATTR_2 = "requiredAttr2";
+
+    public TestCreationFactory() 
+    {
+        super(TAGCREATOR_URI_1);
+    }
+
+    @Override
+    public IElementEdit createElementEdit(TagIdentifier tag) 
+    {
+        return new AbstractElementEdit()
+        {
+            @Override
+            public ITagCreator getTagCreator(TagIdentifier tagId) 
+            {
+                return doCreateTagCreator();
+            }
+
+            @Override
+            public IDropCustomizer getDropCustomizer(TagIdentifier tagId) {
+                return  new MyDropCustomizer();
+            }
+            
+            
+        };
+    }
+
+    public ITagCreator doCreateTagCreator() {
+        return new MyTagCreator();
+    }
+
+    private static class MyTagCreator extends AbstractTagCreator
+    {
+        @Override
+        protected ITagCreationAdvisor doSelectCreationAdvisor(
+                CreationData creationData) {
+            return new MyTagCreationAdvisor(creationData);
+        }
+    }
+
+    private static class MyTagCreationAdvisor extends DefaultTagCreationAdvisor
+    {
+        public MyTagCreationAdvisor(CreationData creationData) 
+        {
+            super(creationData);
+        }
+
+        @Override
+        protected ElementCustomizationCommand getElementCustomizationCommand(
+                IDOMModel model, Element tagElement) 
+        {
+            return new ElementCustomizationCommand(model, tagElement, _creationData)
+            {
+                @Override
+                protected void applyAttributeCustomization() 
+                {
+                    super.applyAttributeCustomization();
+
+                    final TagIdentifier tagId = 
+                        TagIdentifierFactory.createJSPTagWrapper
+                            (_creationData.getUri(), _creationData.getTagName());
+
+                    if (tagId.equals(TAG_WITH_REQUIRED_ATTR))
+                    {
+                        _element.setAttribute(REQUIRED_ATTR_2
+                                , getDefaultAttributeValue(tagId, REQUIRED_ATTR_2));
+                    }
+                    
+                    if (tagId.equals(TAG_WITH_UNSET_REQUIRED_ATTR))
+                    {
+                        ensureRequiredAttrs(_element, _creationData);
+                    }
+                }
+            };
+        }
+    }
+
+    public static String getDefaultAttributeValue(TagIdentifier tagId, String attributeName)
+    {
+        if (TAG_WITH_REQUIRED_ATTR.equals(tagId))
+        {
+            if (REQUIRED_ATTR_1.equals(attributeName))
+            {
+                return null;
+            }
+            else if (REQUIRED_ATTR_2.equals(attributeName))
+            {
+                return "foo";
+            }
+        }
+
+        // if case not covered, return null
+        return null;
+    }
+ 
+    
+    // used by MyDropCustomizer so external JUnits can set the expected status
+    // and adaptable values
+    private static IStatus STATUS;
+    private static IAdaptable ADAPTABLE;
+
+    /**
+     * @param status
+     * @param adaptable
+     */
+    public static synchronized void setTestParametersForDropCustomer(IStatus status, IAdaptable adaptable)
+    {
+        STATUS = status;
+        ADAPTABLE = adaptable;
+    }
+    
+    private static synchronized IStatus getTestStatus()
+    {
+        return STATUS;
+    }
+    
+    private static synchronized IAdaptable getTestAdaptable()
+    {
+        return ADAPTABLE;
+    }
+
+    private static class MyDropCustomizer extends AbstractDropCustomizer
+    {
+        @Override
+        public IAdaptable getDropCustomizationData() {
+            return getTestAdaptable();
+        }
+
+        @Override
+        public IStatus runCustomizer() 
+        {
+            return getTestStatus();
+        }
+        
+    }
+}
diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/expectedResult_directive.include.jspx.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/expectedResult_directive.include.jspx.data
new file mode 100644
index 0000000..8952f02
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/expectedResult_directive.include.jspx.data
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>

+<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core"> <jsp:directive.page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" />

+<html xmlns="http://www.w3.org/1999/xhtml">

+    <head>

+	<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />

+	<title>Insert title here</title>

+	</head>

+    <body>

+<jsp:directive.include /></body>

+</html>

+</jsp:root>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/html/expectedResult_INPUT.BUTTON.html.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/html/expectedResult_INPUT.BUTTON.html.data
new file mode 100644
index 0000000..f28e193
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/html/expectedResult_INPUT.BUTTON.html.data
@@ -0,0 +1,10 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body>

+

+<form><input type="submit"></form></body>

+</html>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/html/expectedResult_INPUT.BUTTON.xhtml.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/html/expectedResult_INPUT.BUTTON.xhtml.data
new file mode 100644
index 0000000..1df0507
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/html/expectedResult_INPUT.BUTTON.xhtml.data
@@ -0,0 +1,12 @@
+

+<?xml version="1.0" encoding="ISO-8859-1" ?>

+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

+<html xmlns="http://www.w3.org/1999/xhtml">

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />

+<title>Insert title here</title>

+</head>

+<body><form><input type="submit" /></form>

+

+</body>

+</html>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_actionListener.jsp.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_actionListener.jsp.data
new file mode 100644
index 0000000..17716e6
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_actionListener.jsp.data
@@ -0,0 +1,12 @@
+<%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1"

+    pageEncoding="ISO-8859-1"%>

+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body>

+

+<f:view><f:actionListener /></f:view></body>

+</html>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_attribute.jsp.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_attribute.jsp.data
new file mode 100644
index 0000000..fc8cd62
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_attribute.jsp.data
@@ -0,0 +1,15 @@
+<%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1"

+    pageEncoding="ISO-8859-1"%>

+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body>

+

+<f:view><f:attribute /></f:view></body>

+</html>

+

+

+

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_commandButton.jsp.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_commandButton.jsp.data
new file mode 100644
index 0000000..fd2b96b
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_commandButton.jsp.data
@@ -0,0 +1,13 @@
+<%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%><%@taglib

+	uri="http://java.sun.com/jsf/core" prefix="f"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1"

+    pageEncoding="ISO-8859-1"%>

+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body>

+

+<f:view><h:form><h:commandButton></h:commandButton></h:form></f:view></body>

+</html>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_commandButton.jspx.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_commandButton.jspx.data
new file mode 100644
index 0000000..787ca5b
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_commandButton.jspx.data
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>

+<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core"> <jsp:directive.page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" />

+<html xmlns="http://www.w3.org/1999/xhtml">

+    <head>

+	<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />

+	<title>Insert title here</title>

+	</head>

+    <body>

+

+    <f:view><h:form><h:commandButton></h:commandButton></h:form></f:view></body>

+</html>

+</jsp:root>

+

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_commandButton.xhtml.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_commandButton.xhtml.data
new file mode 100644
index 0000000..ed848ee
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_commandButton.xhtml.data
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>

+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

+<html xmlns="http://www.w3.org/1999/xhtml"

+	xmlns:h="http://java.sun.com/jsf/html"

+	xmlns:f="http://java.sun.com/jsf/core">

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />

+<title>Insert title here</title>

+</head>

+<body>

+

+<f:view><h:form><h:commandButton></h:commandButton></h:form></f:view></body>

+</html>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_commandLink.jsp.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_commandLink.jsp.data
new file mode 100644
index 0000000..dbbbcb9
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_commandLink.jsp.data
@@ -0,0 +1,13 @@
+<%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%><%@taglib

+	uri="http://java.sun.com/jsf/core" prefix="f"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1"

+    pageEncoding="ISO-8859-1"%>

+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body>

+

+<f:view><h:form><h:commandLink><h:outputText value="CommandLink"></h:outputText></h:commandLink></h:form></f:view></body>

+</html>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_convertDateTime.jsp.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_convertDateTime.jsp.data
new file mode 100644
index 0000000..48aa686
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_convertDateTime.jsp.data
@@ -0,0 +1,12 @@
+<%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1"

+    pageEncoding="ISO-8859-1"%>

+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body>

+

+<f:view><f:convertDateTime /></f:view></body>

+</html>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_convertNumber.jsp.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_convertNumber.jsp.data
new file mode 100644
index 0000000..545728c
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_convertNumber.jsp.data
@@ -0,0 +1,12 @@
+<%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1"

+    pageEncoding="ISO-8859-1"%>

+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body>

+

+<f:view><f:convertNumber /></f:view></body>

+</html>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_converter.jsp.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_converter.jsp.data
new file mode 100644
index 0000000..efc3b03
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_converter.jsp.data
@@ -0,0 +1,12 @@
+<%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1"

+    pageEncoding="ISO-8859-1"%>

+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body>

+

+<f:view><f:converter /></f:view></body>

+</html>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_dataTable.jsp.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_dataTable.jsp.data
new file mode 100644
index 0000000..492458b
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_dataTable.jsp.data
@@ -0,0 +1,21 @@
+<%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%><%@taglib

+	uri="http://java.sun.com/jsf/core" prefix="f"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1"

+    pageEncoding="ISO-8859-1"%>

+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body>

+

+<f:view><h:dataTable border="1"><h:column id="column1">
+					<f:facet name="header">
+						<h:outputText value="column1"></h:outputText>
+					</f:facet>
+				</h:column><h:column id="column2">
+					<f:facet name="header">
+						<h:outputText value="column2"></h:outputText>
+					</f:facet>
+				</h:column></h:dataTable></f:view></body>

+</html>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_facet.jsp.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_facet.jsp.data
new file mode 100644
index 0000000..116d790
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_facet.jsp.data
@@ -0,0 +1,12 @@
+<%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1"

+    pageEncoding="ISO-8859-1"%>

+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body>

+

+<f:view><f:facet></f:facet></f:view></body>

+</html>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_form.jsp.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_form.jsp.data
new file mode 100644
index 0000000..1b0bccf
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_form.jsp.data
@@ -0,0 +1,14 @@
+<%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%><%@taglib

+	uri="http://java.sun.com/jsf/core" prefix="f"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1"

+    pageEncoding="ISO-8859-1"%>

+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body>

+

+<f:view><h:form></h:form></f:view></body>

+</html>

+

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_graphicImage.jsp.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_graphicImage.jsp.data
new file mode 100644
index 0000000..565c2dd
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_graphicImage.jsp.data
@@ -0,0 +1,13 @@
+<%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%><%@taglib

+	uri="http://java.sun.com/jsf/core" prefix="f"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1"

+    pageEncoding="ISO-8859-1"%>

+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body>

+

+<f:view><h:graphicImage></h:graphicImage></f:view></body>

+</html>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_inputHidden.jsp.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_inputHidden.jsp.data
new file mode 100644
index 0000000..9e4b261
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_inputHidden.jsp.data
@@ -0,0 +1,13 @@
+<%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%><%@taglib

+	uri="http://java.sun.com/jsf/core" prefix="f"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1"

+    pageEncoding="ISO-8859-1"%>

+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body>

+

+<f:view><h:form><h:inputHidden></h:inputHidden></h:form></f:view></body>

+</html>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_inputSecret.jsp.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_inputSecret.jsp.data
new file mode 100644
index 0000000..efacde3
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_inputSecret.jsp.data
@@ -0,0 +1,13 @@
+<%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%><%@taglib

+	uri="http://java.sun.com/jsf/core" prefix="f"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1"

+    pageEncoding="ISO-8859-1"%>

+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body>

+

+<f:view><h:form><h:inputSecret></h:inputSecret></h:form></f:view></body>

+</html>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_inputText.jsp.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_inputText.jsp.data
new file mode 100644
index 0000000..fb557a1
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_inputText.jsp.data
@@ -0,0 +1,13 @@
+<%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%><%@taglib

+	uri="http://java.sun.com/jsf/core" prefix="f"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1"

+    pageEncoding="ISO-8859-1"%>

+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body>

+

+<f:view><h:form><h:inputText></h:inputText></h:form></f:view></body>

+</html>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_inputTextarea.jsp.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_inputTextarea.jsp.data
new file mode 100644
index 0000000..57025a8
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_inputTextarea.jsp.data
@@ -0,0 +1,13 @@
+<%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%><%@taglib

+	uri="http://java.sun.com/jsf/core" prefix="f"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1"

+    pageEncoding="ISO-8859-1"%>

+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body>

+

+<f:view><h:form><h:inputTextarea></h:inputTextarea></h:form></f:view></body>

+</html>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_loadBundle.jsp.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_loadBundle.jsp.data
new file mode 100644
index 0000000..2aa61ea
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_loadBundle.jsp.data
@@ -0,0 +1,12 @@
+<%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1"

+    pageEncoding="ISO-8859-1"%>

+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body>

+

+<f:view><f:loadBundle /></f:view></body>

+</html>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_message.jsp.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_message.jsp.data
new file mode 100644
index 0000000..e1d8802
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_message.jsp.data
@@ -0,0 +1,13 @@
+<%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%><%@taglib

+	uri="http://java.sun.com/jsf/core" prefix="f"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1"

+    pageEncoding="ISO-8859-1"%>

+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body>

+

+<f:view><h:message></h:message></f:view></body>

+</html>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_messages.jsp.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_messages.jsp.data
new file mode 100644
index 0000000..7cea090
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_messages.jsp.data
@@ -0,0 +1,13 @@
+<%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%><%@taglib

+	uri="http://java.sun.com/jsf/core" prefix="f"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1"

+    pageEncoding="ISO-8859-1"%>

+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body>

+

+<f:view><h:messages></h:messages></f:view></body>

+</html>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_outputFormat.jsp.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_outputFormat.jsp.data
new file mode 100644
index 0000000..ae929f8
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_outputFormat.jsp.data
@@ -0,0 +1,13 @@
+<%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%><%@taglib

+	uri="http://java.sun.com/jsf/core" prefix="f"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1"

+    pageEncoding="ISO-8859-1"%>

+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body>

+

+<f:view><h:outputFormat></h:outputFormat></f:view></body>

+</html>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_outputLabel.jsp.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_outputLabel.jsp.data
new file mode 100644
index 0000000..23f1715
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_outputLabel.jsp.data
@@ -0,0 +1,13 @@
+<%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%><%@taglib

+	uri="http://java.sun.com/jsf/core" prefix="f"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1"

+    pageEncoding="ISO-8859-1"%>

+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body>

+

+<f:view><h:outputLabel></h:outputLabel></f:view></body>

+</html>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_outputText.jsp.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_outputText.jsp.data
new file mode 100644
index 0000000..5f0f4fc
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_outputText.jsp.data
@@ -0,0 +1,13 @@
+<%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%><%@taglib

+	uri="http://java.sun.com/jsf/core" prefix="f"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1"

+    pageEncoding="ISO-8859-1"%>

+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body>

+

+<f:view><h:outputText></h:outputText></f:view></body>

+</html>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_panelGrid.jsp.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_panelGrid.jsp.data
new file mode 100644
index 0000000..22ea572
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_panelGrid.jsp.data
@@ -0,0 +1,13 @@
+<%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%><%@taglib

+	uri="http://java.sun.com/jsf/core" prefix="f"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1"

+    pageEncoding="ISO-8859-1"%>

+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body>

+

+<f:view><h:panelGrid border="1" columns="2"><h:outputText value="item1"></h:outputText><h:outputText value="item2"></h:outputText><h:outputText value="item3"></h:outputText><h:outputText value="item4"></h:outputText></h:panelGrid></f:view></body>

+</html>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_panelGroup.jsp.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_panelGroup.jsp.data
new file mode 100644
index 0000000..e38e714
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_panelGroup.jsp.data
@@ -0,0 +1,13 @@
+<%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%><%@taglib

+	uri="http://java.sun.com/jsf/core" prefix="f"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1"

+    pageEncoding="ISO-8859-1"%>

+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body>

+

+<f:view><h:panelGroup></h:panelGroup></f:view></body>

+</html>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_param.jsp.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_param.jsp.data
new file mode 100644
index 0000000..1841db8
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_param.jsp.data
@@ -0,0 +1,12 @@
+<%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1"

+    pageEncoding="ISO-8859-1"%>

+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body>

+

+<f:view><f:param /></f:view></body>

+</html>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_selectBooleanCheckBox.jsp.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_selectBooleanCheckBox.jsp.data
new file mode 100644
index 0000000..1cbd440
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_selectBooleanCheckBox.jsp.data
@@ -0,0 +1,13 @@
+<%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%><%@taglib

+	uri="http://java.sun.com/jsf/core" prefix="f"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1"

+    pageEncoding="ISO-8859-1"%>

+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body>

+

+<f:view><h:form><h:selectBooleanCheckbox></h:selectBooleanCheckbox></h:form></f:view></body>

+</html>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_selectItem.jsp.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_selectItem.jsp.data
new file mode 100644
index 0000000..bbae9e8
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_selectItem.jsp.data
@@ -0,0 +1,12 @@
+<%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1"

+    pageEncoding="ISO-8859-1"%>

+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body>

+

+<f:view><f:selectItem /></f:view></body>

+</html>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_selectItems.jsp.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_selectItems.jsp.data
new file mode 100644
index 0000000..57e465f
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_selectItems.jsp.data
@@ -0,0 +1,12 @@
+<%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1"

+    pageEncoding="ISO-8859-1"%>

+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body>

+

+<f:view><f:selectItems /></f:view></body>

+</html>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_selectManyCheckBox.jsp.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_selectManyCheckBox.jsp.data
new file mode 100644
index 0000000..2b58eb8
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_selectManyCheckBox.jsp.data
@@ -0,0 +1,13 @@
+<%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%><%@taglib

+	uri="http://java.sun.com/jsf/core" prefix="f"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1"

+    pageEncoding="ISO-8859-1"%>

+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body>

+

+<f:view><h:form><h:selectManyCheckbox></h:selectManyCheckbox></h:form></f:view></body>

+</html>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_selectManyListbox.jsp.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_selectManyListbox.jsp.data
new file mode 100644
index 0000000..d08b3ac
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_selectManyListbox.jsp.data
@@ -0,0 +1,13 @@
+<%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%><%@taglib

+	uri="http://java.sun.com/jsf/core" prefix="f"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1"

+    pageEncoding="ISO-8859-1"%>

+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body>

+

+<f:view><h:form><h:selectManyListbox></h:selectManyListbox></h:form></f:view></body>

+</html>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_selectManyMenu.jsp.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_selectManyMenu.jsp.data
new file mode 100644
index 0000000..abe9546
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_selectManyMenu.jsp.data
@@ -0,0 +1,13 @@
+<%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%><%@taglib

+	uri="http://java.sun.com/jsf/core" prefix="f"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1"

+    pageEncoding="ISO-8859-1"%>

+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body>

+

+<f:view><h:form><h:selectManyMenu></h:selectManyMenu></h:form></f:view></body>

+</html>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_selectOneListBox.jsp.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_selectOneListBox.jsp.data
new file mode 100644
index 0000000..fbaeb7f
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_selectOneListBox.jsp.data
@@ -0,0 +1,13 @@
+<%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%><%@taglib

+	uri="http://java.sun.com/jsf/core" prefix="f"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1"

+    pageEncoding="ISO-8859-1"%>

+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body>

+

+<f:view><h:form><h:selectOneListbox></h:selectOneListbox></h:form></f:view></body>

+</html>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_selectOneMenu.jsp.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_selectOneMenu.jsp.data
new file mode 100644
index 0000000..4dd6200
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_selectOneMenu.jsp.data
@@ -0,0 +1,13 @@
+<%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%><%@taglib

+	uri="http://java.sun.com/jsf/core" prefix="f"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1"

+    pageEncoding="ISO-8859-1"%>

+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body>

+

+<f:view><h:form><h:selectOneMenu></h:selectOneMenu></h:form></f:view></body>

+</html>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_selectOneRadio.jsp.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_selectOneRadio.jsp.data
new file mode 100644
index 0000000..d687c5e
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_selectOneRadio.jsp.data
@@ -0,0 +1,13 @@
+<%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%><%@taglib

+	uri="http://java.sun.com/jsf/core" prefix="f"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1"

+    pageEncoding="ISO-8859-1"%>

+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body>

+

+<f:view><h:form><h:selectOneRadio></h:selectOneRadio></h:form></f:view></body>

+</html>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_subview.jsp.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_subview.jsp.data
new file mode 100644
index 0000000..39f349f
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_subview.jsp.data
@@ -0,0 +1,12 @@
+<%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1"

+    pageEncoding="ISO-8859-1"%>

+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body>

+

+<f:view><f:subview></f:subview></f:view></body>

+</html>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_validateDoubleRange.jsp.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_validateDoubleRange.jsp.data
new file mode 100644
index 0000000..7f05e9b
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_validateDoubleRange.jsp.data
@@ -0,0 +1,12 @@
+<%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1"

+    pageEncoding="ISO-8859-1"%>

+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body>

+

+<f:view><f:validateDoubleRange /></f:view></body>

+</html>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_validateLength.jsp.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_validateLength.jsp.data
new file mode 100644
index 0000000..432cdc6
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_validateLength.jsp.data
@@ -0,0 +1,12 @@
+<%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1"

+    pageEncoding="ISO-8859-1"%>

+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body>

+

+<f:view><f:validateLength /></f:view></body>

+</html>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_validateLongRange.jsp.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_validateLongRange.jsp.data
new file mode 100644
index 0000000..def1a41
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_validateLongRange.jsp.data
@@ -0,0 +1,12 @@
+<%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1"

+    pageEncoding="ISO-8859-1"%>

+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body>

+

+<f:view><f:validateLongRange /></f:view></body>

+</html>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_validator.jsp.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_validator.jsp.data
new file mode 100644
index 0000000..8d68cc5
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_validator.jsp.data
@@ -0,0 +1,12 @@
+<%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1"

+    pageEncoding="ISO-8859-1"%>

+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body>

+

+<f:view><f:validator /></f:view></body>

+</html>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_valueChangeListener.jsp.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_valueChangeListener.jsp.data
new file mode 100644
index 0000000..0c2bc22
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_valueChangeListener.jsp.data
@@ -0,0 +1,12 @@
+<%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1"

+    pageEncoding="ISO-8859-1"%>

+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body>

+

+<f:view><f:valueChangeListener /></f:view></body>

+</html>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_verbatim.jsp.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_verbatim.jsp.data
new file mode 100644
index 0000000..ae2a543
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_verbatim.jsp.data
@@ -0,0 +1,12 @@
+<%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1"

+    pageEncoding="ISO-8859-1"%>

+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body>

+

+<f:view><f:verbatim></f:verbatim></f:view></body>

+</html>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_view.jsp.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_view.jsp.data
new file mode 100644
index 0000000..ee2b049
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsf/expectedResult_view.jsp.data
@@ -0,0 +1,12 @@
+<%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1"

+    pageEncoding="ISO-8859-1"%>

+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body>

+

+<f:view></f:view></body>

+</html>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsp/expectedResult_jsp_directive.include.jsp.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsp/expectedResult_jsp_directive.include.jsp.data
new file mode 100644
index 0000000..564b439
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsp/expectedResult_jsp_directive.include.jsp.data
@@ -0,0 +1,12 @@
+<%@ page language="java" contentType="text/html; charset=ISO-8859-1"

+    pageEncoding="ISO-8859-1"%>

+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body><jsp:directive.include />

+

+</body>

+</html>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsp/expectedResult_jsp_directive.include.jspx.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsp/expectedResult_jsp_directive.include.jspx.data
new file mode 100644
index 0000000..6687be7
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/jsp/expectedResult_jsp_directive.include.jspx.data
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>

+<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core"> <jsp:directive.page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" />

+<html xmlns="http://www.w3.org/1999/xhtml">

+    <head>

+	<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />

+	<title>Insert title here</title>

+	</head>

+    <body><jsp:directive.include />

+

+    </body>

+</html>

+</jsp:root>

+

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/tagCreator.html.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/tagCreator.html.data
new file mode 100644
index 0000000..88e76d5
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/tagCreator.html.data
@@ -0,0 +1,10 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body>

+

+</body>

+</html>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/tagCreator.jsp.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/tagCreator.jsp.data
new file mode 100644
index 0000000..f74e8c2
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/tagCreator.jsp.data
@@ -0,0 +1,12 @@
+<%@ page language="java" contentType="text/html; charset=ISO-8859-1"

+    pageEncoding="ISO-8859-1"%>

+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body>

+

+</body>

+</html>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/tagCreator.jspx.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/tagCreator.jspx.data
new file mode 100644
index 0000000..37a3057
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/tagCreator.jspx.data
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>

+<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core"> <jsp:directive.page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" />

+<html xmlns="http://www.w3.org/1999/xhtml">

+    <head>

+	<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />

+	<title>Insert title here</title>

+	</head>

+    <body>

+

+    </body>

+</html>

+</jsp:root>

+

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/tagCreator.xhtml.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/tagCreator.xhtml.data
new file mode 100644
index 0000000..10bdd6f
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/tagCreator.xhtml.data
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>

+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

+<html xmlns="http://www.w3.org/1999/xhtml">

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />

+<title>Insert title here</title>

+</head>

+<body>

+

+</body>

+</html>

+

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/testCreator.tld.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/testCreator.tld.data
new file mode 100644
index 0000000..e36c232
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/testCreator.tld.data
@@ -0,0 +1,142 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>

+

+<!DOCTYPE taglib

+  PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"

+  "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">

+

+

+<taglib>

+

+

+  <!-- ========== Tag Library Description Elements ========================= -->

+

+

+  <tlib-version>1.0</tlib-version>

+  <jsp-version>1.2</jsp-version>

+  <short-name>test</short-name>

+  <uri>org.eclipse.jst.pagedesigner.tests.tagCreatorFactory1</uri>

+  <description>

+   A test tld used for verifying the tagCreationFactories extension point.

+  </description>

+

+  <!-- ========== Tag Descriptions ========================================= -->

+

+

+  <tag>

+    <name>tagWithRequiredAttr</name>

+    <tag-class>com.foo.SomeClass</tag-class>

+    <body-content>empty</body-content>

+    <description>

+       A tag with a required attribute used to test ensureRequiredAttributes

+    </description>

+

+    <attribute>

+      <name>requiredAttr1</name>

+      <required>true</required>

+      <rtexprvalue>false</rtexprvalue>

+      <description>

+          This attribute is required.

+      </description>

+    </attribute>

+    

+    <attribute>

+      <name>requiredAttr2</name>

+      <required>true</required>

+      <rtexprvalue>false</rtexprvalue>

+      <description>

+          This attribute is required.

+      </description>

+    </attribute>

+

+    <attribute>

+      <name>notRequiredAttr1</name>

+      <required>false</required>

+      <rtexprvalue>false</rtexprvalue>

+      <description>

+          This attribute is optional.

+      </description>

+    </attribute>

+

+  </tag>

+

+    <tag>

+    <name>tagWithRequiredAttr2</name>

+    <tag-class>com.foo.SomeClass</tag-class>

+    <body-content>empty</body-content>

+    <description>

+       A tag with a required attribute used to test ensureRequiredAttributes

+    </description>

+

+    <attribute>

+      <name>requiredAttr1</name>

+      <required>true</required>

+      <rtexprvalue>false</rtexprvalue>

+      <description>

+          This attribute is required.

+      </description>

+    </attribute>

+    

+    <attribute>

+      <name>requiredAttr2</name>

+      <required>true</required>

+      <rtexprvalue>false</rtexprvalue>

+      <description>

+          This attribute is required.

+      </description>

+    </attribute>

+

+    <attribute>

+      <name>notRequiredAttr1</name>

+      <required>false</required>

+      <rtexprvalue>false</rtexprvalue>

+      <description>

+          This attribute is optional.

+      </description>

+    </attribute>

+

+  </tag>

+

+  <tag>

+    <name>tagWithMetadata</name>

+    <tag-class>com.foo.SomeOtherClass</tag-class>

+    <body-content>empty</body-content>

+    <description>

+       A tag with tag attribute and element meta-data

+    </description>

+

+    <attribute>

+      <name>requiredAttr1</name>

+      <required>true</required>

+      <rtexprvalue>false</rtexprvalue>

+      <description>

+          This attribute is required.

+      </description>

+    </attribute>

+

+    <attribute>

+      <name>requiredAttr2</name>

+      <required>true</required>

+      <rtexprvalue>false</rtexprvalue>

+      <description>

+          This attribute is also required.

+      </description>

+    </attribute>

+

+    <attribute>

+      <name>notRequiredAttr1</name>

+      <required>false</required>

+      <rtexprvalue>false</rtexprvalue>

+      <description>

+          This attribute is optional.

+      </description>

+    </attribute>

+    <attribute>

+      <name>notRequiredAttr2</name>

+      <required>false</required>

+      <rtexprvalue>false</rtexprvalue>

+      <description>

+          This attribute is also optional.

+      </description>

+    </attribute>

+  </tag>

+</taglib>

diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/testTagCreation.jsp.data b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/testTagCreation.jsp.data
new file mode 100644
index 0000000..f0b873b
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/testdata/tagcreator/testTagCreation.jsp.data
@@ -0,0 +1,16 @@
+<%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%><%@taglib uri="org.eclipse.jst.pagedesigner.tests.tagCreatorFactory1" prefix="test"<%@ page language="java" contentType="text/html; charset=ISO-8859-1"

+    pageEncoding="ISO-8859-1"%>

+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<html>

+<head>

+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

+<title>Insert title here</title>

+</head>

+<body>

+

+<f:view>

+

+</f:view>

+

+</body>

+</html>